http://wiki.voxelturf.net/mediawiki//api.php?action=feedcontributions&user=SnapperTheTwig&feedformat=atomVoxel Turf Wiki - User contributions [en]2024-03-29T01:05:43ZUser contributionsMediaWiki 1.30.0http://wiki.voxelturf.net/mediawiki//index.php?title=Running_a_Dedicated_Server&diff=908Running a Dedicated Server2024-03-01T06:02:32Z<p>SnapperTheTwig: /* Installing Workshop Mods */ added more mods</p>
<hr />
<div>This article explains how to deploy a Voxel Turf Dedicated Server on a Linux VPS.<br />
<br />
== Deploying a VPS ==<br />
You can grap a cheap VPS. A 1 core VPS will get you started but it is recommended that you have a 2 core VPS.<br />
<br />
This article assumes that you have one. HOST can be substituted with the IP address of the server (eg 1.2.3.4).<br />
<br />
===SSH into the server===<br />
(enter this on your local linux termanal)<br />
<source><br />
LOCAL MACHINE:<br />
ssh root@HOST<br />
</source><br />
<br />
<br />
===Set up a user===<br />
<source><br />
useradd -m turf<br />
passwd turf<br />
adduser turf sudo<br />
su - turf<br />
</source><br />
<br />
===Security (Optional)===<br />
<br />
Set up passwordless access via ssh (using keys and not passwords) <br />
<source><br />
LOCAL MACHINE:<br />
ssh-keygen<br />
ssh-copy-id -i ~/.ssh/id_rsa turf@HOST<br />
</source><br />
<br />
Set the ssh port to something other than the default (21). This will help stop people trying to brute force into your server. Also disable root login & password login. To do this, change:<br />
<source><br />
sudo nano /etc/ssh/sshd_config <br />
</source><br />
To:<br />
<source><br />
Port <NEW PORT NUMBER><br />
PermitRootLogin no<br />
ChallengeResponseAuthentication no<br />
PasswordAuthentication no<br />
UsePAM no <br />
</source><br />
<br />
To login to your server you'll have to use:<br />
<source><br />
ssh -p <NEW PORT NUMBER> turf@HOST<br />
</source><br />
<br />
===Tips===<br />
You can set the default shell to bash on the server. This enables tab completion and arrow keys.<br />
<source>sudo chsh -s /bin/bash USERNAME</source><br />
<br />
==Installing Voxel Turf==<br />
===Installing Dependencies===<br />
<source><br />
sudo apt-get update <br />
sudo apt-get upgrade<br />
sudo apt-get install libsdl2-2.0-0 <br />
sudo apt-get install libsdl2-net-2.0-0 <br />
</source><br />
<br />
<br />
===Installing Steam and SteamCMD===<br />
<source><br />
sudo apt-get install lib32gcc1<br />
mkdir Steam<br />
cd Steam<br />
wget http://media.steampowered.com/client/steamcmd_linux.tar.gz<br />
tar -xvzf steamcmd_linux.tar.gz<br />
</source><br />
<br />
Alternatively you can just copy the files from a linux installation of Voxel Turf onto the server<br />
<br />
===Using SteamCMD to install Voxel Turf===<br />
<source><br />
./steamcmd.sh<br />
</source><br />
<br />
In Steam><br />
<source><br />
login anonymous<br />
force_install_dir /home/<USER>/turf<br />
app_update 526340<br />
quit<br />
</source><br />
<br />
You should be now able to run the server and play.<br />
<br />
To install a beta branch use:<br />
<source><br />
app_update 526340 -beta beta validate<br />
</source><br />
<br />
==Running The Server==<br />
Running <code>vtserver --help</code> will give you a list of command line switches.<br />
<br />
===Start Command===<br />
An easy way to generate a start command is to run the game locally (on your machine) and extract the start command from the logs (<code>GAMEFOLDER/logs/startserver.log</code>).<br />
<br />
You should see something like this:<br />
<code>--serverName "YOUR Turf Server" --saveGame "Sora_Turf" --publicGame OFF --dedicated OFF --difficulty 1 --maxPlayers 8 --hostPlayer 36563646 --newGame ON --gameMode "Turf" --genmap 4096 4096 --randomSeed "46756168" --steam</code><br />
<br />
Change it to<br />
<code>--serverName "NAME Turf Server" --saveGame "GAMESAVENAME" --publicGame ON --difficulty 1 --maxPlayers 8 --gameMode "Turf" --genmap 2048 2048</code><br />
<br />
===Permissions===<br />
Go to GAMEFOLDER/settings/globalpermissions.txt and make it look like:<br />
<source><br />
%ADMINS<br />
;UID<br />
</source><br />
replace ;UID with the UID from steam (SteamID3) For example "[U:1:145678]" so I put ";145678"<br />
Can be found here: http://steamid.co/ or from "--HostPlayer" in startserver.log on the local machine.<br />
<br />
<br />
<br />
==Advanced Stuff==<br />
<br />
===Installing Workshop Mods===<br />
<br />
You can use the following script (or similar) to install Steam Workshop mods<br />
<source><br />
login anonymous<br />
force_install_dir /home/<USER>/turf/workshop/<br />
workshop_download_item 404530 1139738481<br />
workshop_download_item 404530 1146791667<br />
workshop_download_item 404530 1147901316<br />
workshop_download_item 404530 1148991672<br />
workshop_download_item 404530 1150505297<br />
workshop_download_item 404530 1151247017<br />
workshop_download_item 404530 1151814594<br />
workshop_download_item 404530 1155491803<br />
workshop_download_item 404530 1157290153<br />
workshop_download_item 404530 1161093711<br />
workshop_download_item 404530 1161805016<br />
workshop_download_item 404530 1163198197<br />
workshop_download_item 404530 1173209773<br />
workshop_download_item 404530 1186472758<br />
workshop_download_item 404530 1188474602<br />
workshop_download_item 404530 1194894626<br />
workshop_download_item 404530 1214171560<br />
workshop_download_item 404530 1214209573<br />
workshop_download_item 404530 1228209888<br />
workshop_download_item 404530 1232559786<br />
workshop_download_item 404530 1286749403<br />
workshop_download_item 404530 1292765889<br />
workshop_download_item 404530 1293667849<br />
workshop_download_item 404530 1297767382<br />
workshop_download_item 404530 1313810046<br />
workshop_download_item 404530 1356700312<br />
workshop_download_item 404530 1357159347<br />
workshop_download_item 404530 1359235841<br />
workshop_download_item 404530 1374585114<br />
workshop_download_item 404530 1382550977<br />
workshop_download_item 404530 1388371537<br />
workshop_download_item 404530 1414621518<br />
workshop_download_item 404530 1362695804<br />
workshop_download_item 404530 1422753063<br />
workshop_download_item 404530 1439594806<br />
workshop_download_item 404530 1438699284<br />
workshop_download_item 404530 1448258410<br />
workshop_download_item 404530 1448258410<br />
workshop_download_item 404530 1567312287<br />
workshop_download_item 404530 1569424047<br />
workshop_download_item 404530 1502040207<br />
workshop_download_item 404530 1686359089<br />
workshop_download_item 404530 1669912546<br />
workshop_download_item 404530 1711533908<br />
workshop_download_item 404530 1408356394<br />
workshop_download_item 404530 1859938129<br />
workshop_download_item 404530 2158310645<br />
workshop_download_item 404530 1220858879<br />
workshop_download_item 404530 1321497749<br />
workshop_download_item 404530 1165605817<br />
workshop_download_item 404530 1254858697<br />
workshop_download_item 404530 1781089616<br />
workshop_download_item 404530 2447555026<br />
workshop_download_item 404530 2413865435<br />
workshop_download_item 404530 2383133708<br />
workshop_download_item 404530 1427795268<br />
workshop_download_item 404530 2667653606<br />
workshop_download_item 404530 2667784591<br />
workshop_download_item 404530 1796008481 <br />
workshop_download_item 404530 2963501169<br />
workshop_download_item 404530 3150949302<br />
<br />
quit<br />
</source><br />
<br />
And then you make vtserver "see" the mods using a symbolic link<br />
<br />
<source><br />
cd ~/turf/<br />
rm -rf mods<br />
ln -s workshop/steamapps/workshop/content/404530/ mods<br />
</source><br />
<br />
===Running the Server Continuously===<br />
This allows you to auto-restart the server if it crashes. You can find this script in <code>/linux_server_admin_scripts_and_instructions/runvtserver.sh</code>.<br />
<br />
<source><br />
#!/bin/bash<br />
BASE=/home/USER/<br />
DIR=$BASE/turf/<br />
while :; do<br />
# Run the server<br />
$DIR/vtserver --saveGame SAVE_FILE --publicGame ON --maxPlayers 8 --serverName "SERVER_NAME"<br />
sleep 1<br />
done<br />
</source><br />
<br />
It is recommended that you run <code>runvtserver.sh</code> through <code>solo.pl</code> (which is provided in <code>/linux_server_admin_scripts_and_instructions/solo.pl</code>. Solo.pl will ensure that ''only one'' instance of the script is running. Solo.pl binds to a port, not a lockfile so it won't break if your system randomly hard resets.<br />
<br />
Use crontab (<code>crontab -e</code>) to enter the following:<br />
<source>* * * * * /home/USER/solo.pl -port=3801 -verbose ./runvtserver.sh >/dev/null 2>&1</source><br />
<br />
Port 3801 is the lock port for solo.pl, NOT the port that vtserver uses. vtserver uses port 5728 by default. The {{file| >/dev/null 2>&1}} is to suppress crontab trying to log and email the console output of vtserver <br />
<br />
<br />
This provides triple redundancy: When the server starts up crontab will run solo.pl which starts runvtserver.sh which runs vtserver. If vtserver crashes then runvtserver.sh will ''immediately'' restart it. Crontab will start runvtserver.sh if it is not running, and solo.pl prevents crontab spawning endless instances of runvtserver.sh.<br />
<br />
===Orderly Shutdown===<br />
vtserver accepts SIG_HUP interrupts. This will cause an orderly shutdown (save and exit). It will also instruct any connected clients to try and reconnect.<br />
<source>killall -s HUP vtserver</source><br />
<br />
===Polling Server Status===<br />
vtserver will create a file in the logs directory: {{file|logs/server_status.txt}}. This file is updated every 30 seconds. You can use this, for example, to update a webpage indicating how many players are on the server.<br />
<br />
Here is an example output:<br />
<source># This file is updated every 30s while the server is running<br />
# timestamp ; serverid ; players ; maxplayers ; public ; serverName ; gamemode ; serverversion<br />
1520494242 ; 3837146104 ; 0 ; 8 ; false ; "" ; "Build" ; 1.1.0-Beta1-g76v<br />
</source><br />
<br />
===serverscript.lua===<br />
[[File:serverscript_lua.png|thumb|Placing a serverscript.lua file in a save game's directory will cause it to be executed by vtserver on startup]]<br />
Placing a plaintext file serverscript.lua in the games save directory will cause the server to execute the script whenever that save is executed. You can use this to write custom mods for the server, give the players stuff when they log in or even redirect players to other servers (you can make stargates)!<br />
<br />
===Periodic Shutdown and Restart with serverscript.lua===<br />
This can be useful to clear the map of dumped vehicles and fix any bugs that may have creeped into the server's state. Here is an example script from the Lets Build A City server that shuts down the server every 6 hours. It also sets the Message Of The Day and shows some other hooks.<br />
<br />
<syntaxhighlight lang=lua><br />
SERVER_RESET_PERIOD = 60*6;<br />
<br />
--Worker functions<br />
function timeTillNextServerReset ()<br />
local NH = turf.NetworkHandler.getInstance(); <br />
local uptime = NH:getUptimeInSeconds();<br />
return SERVER_RESET_PERIOD*60 - uptime, uptime;<br />
end<br />
<br />
function getFormatedTimeTillReset (timeTillReset)<br />
local minutesRemaining = math.floor(timeTillReset/60);<br />
if (minutesRemaining > 2) then return tostring(minutesRemaining) .. " minutes"; end<br />
return tostring(math.max(0, timeTillReset)) .. " seconds!";<br />
end<br />
<br />
-- CustomFunc - code injection<br />
customFunc.OnHour_extra = function (GMS, Net, W, timeOfDay)<br />
local NH = turf.NetworkHandler.getInstance(); <br />
local timeToReset = timeTillNextServerReset ();<br />
<br />
if (timeToReset > 10 and timeToReset < 600) then<br />
NH:broadcastSM ("Server will be rebooting in "..getFormatedTimeTillReset(timeToReset), 0);<br />
end<br />
end<br />
<br />
<br />
-- On new player login<br />
customFunc.OnNewPlayer_extra = function (GMS, P, I, PCr, W)<br />
-- Give them items, send a message, etc<br />
end<br />
<br />
<br />
<br />
-- Toggleable static bool for sending the "restart in X seconds" messages<br />
customFunc.pollServerTick_extra_static_tickCount = 0;<br />
<br />
-- This function is called every tile-entity tick (4Hz), not every server frame tick (variable, 15Hz/33Hz/67Hz depending on user configuration as defined in serverprefs_1000.txt)<br />
customFunc.pollServerTick_extra = function (NH) <br />
local timeToReset = timeTillNextServerReset ();<br />
<br />
-- Send a "RESTARTING IN X" seconds if we are less than 10 seconds to go and this is the first of every 4 ticks.<br />
if (timeToReset < 10 and timeToReset > 0 and customFunc.pollServerTick_extra_static_tickCount == 0) then<br />
NH:broadcastSM ("Rebooting Server in ".. tostring(timeToReset) .. " seconds!", 0);<br />
NH:playSoundToAllClients ("CLICK");<br />
end<br />
customFunc.pollServerTick_extra_static_tickCount = customFunc.pollServerTick_extra_static_tickCount+1;<br />
if (customFunc.pollServerTick_extra_static_tickCount >= 4) then customFunc.pollServerTick_extra_static_tickCount = 0; end<br />
<br />
if (timeToReset <= 0) then<br />
NH:sendAllPlayersToServer ("", ""); -- Telling players to go to (empty string) server tells them to drop and reconnect to this server<br />
NH:flagShutdown (); -- Showdown the server. You'll have to restart it with a shell script<br />
end<br />
end<br />
<br />
<br />
-- No missions on this server!<br />
--turf.MissionHandler.getInstance():removalAllMissions();<br />
<br />
-- Set the MOTD<br />
turf.NetworkHandler.getInstance():setMessageOfTheDay ("==============================\nWelcome to the Let's Build A City server!\n ~SnapperTheTwig\n==============================");<br />
</syntaxhighlight><br />
<br />
[[Category:Guides]]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Running_a_Dedicated_Server&diff=907Running a Dedicated Server2023-04-18T03:33:55Z<p>SnapperTheTwig: /* Installing Workshop Mods */ More mods</p>
<hr />
<div>This article explains how to deploy a Voxel Turf Dedicated Server on a Linux VPS.<br />
<br />
== Deploying a VPS ==<br />
You can grap a cheap VPS. A 1 core VPS will get you started but it is recommended that you have a 2 core VPS.<br />
<br />
This article assumes that you have one. HOST can be substituted with the IP address of the server (eg 1.2.3.4).<br />
<br />
===SSH into the server===<br />
(enter this on your local linux termanal)<br />
<source><br />
LOCAL MACHINE:<br />
ssh root@HOST<br />
</source><br />
<br />
<br />
===Set up a user===<br />
<source><br />
useradd -m turf<br />
passwd turf<br />
adduser turf sudo<br />
su - turf<br />
</source><br />
<br />
===Security (Optional)===<br />
<br />
Set up passwordless access via ssh (using keys and not passwords) <br />
<source><br />
LOCAL MACHINE:<br />
ssh-keygen<br />
ssh-copy-id -i ~/.ssh/id_rsa turf@HOST<br />
</source><br />
<br />
Set the ssh port to something other than the default (21). This will help stop people trying to brute force into your server. Also disable root login & password login. To do this, change:<br />
<source><br />
sudo nano /etc/ssh/sshd_config <br />
</source><br />
To:<br />
<source><br />
Port <NEW PORT NUMBER><br />
PermitRootLogin no<br />
ChallengeResponseAuthentication no<br />
PasswordAuthentication no<br />
UsePAM no <br />
</source><br />
<br />
To login to your server you'll have to use:<br />
<source><br />
ssh -p <NEW PORT NUMBER> turf@HOST<br />
</source><br />
<br />
===Tips===<br />
You can set the default shell to bash on the server. This enables tab completion and arrow keys.<br />
<source>sudo chsh -s /bin/bash USERNAME</source><br />
<br />
==Installing Voxel Turf==<br />
===Installing Dependencies===<br />
<source><br />
sudo apt-get update <br />
sudo apt-get upgrade<br />
sudo apt-get install libsdl2-2.0-0 <br />
sudo apt-get install libsdl2-net-2.0-0 <br />
</source><br />
<br />
<br />
===Installing Steam and SteamCMD===<br />
<source><br />
sudo apt-get install lib32gcc1<br />
mkdir Steam<br />
cd Steam<br />
wget http://media.steampowered.com/client/steamcmd_linux.tar.gz<br />
tar -xvzf steamcmd_linux.tar.gz<br />
</source><br />
<br />
Alternatively you can just copy the files from a linux installation of Voxel Turf onto the server<br />
<br />
===Using SteamCMD to install Voxel Turf===<br />
<source><br />
./steamcmd.sh<br />
</source><br />
<br />
In Steam><br />
<source><br />
login anonymous<br />
force_install_dir /home/<USER>/turf<br />
app_update 526340<br />
quit<br />
</source><br />
<br />
You should be now able to run the server and play.<br />
<br />
To install a beta branch use:<br />
<source><br />
app_update 526340 -beta beta validate<br />
</source><br />
<br />
==Running The Server==<br />
Running <code>vtserver --help</code> will give you a list of command line switches.<br />
<br />
===Start Command===<br />
An easy way to generate a start command is to run the game locally (on your machine) and extract the start command from the logs (<code>GAMEFOLDER/logs/startserver.log</code>).<br />
<br />
You should see something like this:<br />
<code>--serverName "YOUR Turf Server" --saveGame "Sora_Turf" --publicGame OFF --dedicated OFF --difficulty 1 --maxPlayers 8 --hostPlayer 36563646 --newGame ON --gameMode "Turf" --genmap 4096 4096 --randomSeed "46756168" --steam</code><br />
<br />
Change it to<br />
<code>--serverName "NAME Turf Server" --saveGame "GAMESAVENAME" --publicGame ON --difficulty 1 --maxPlayers 8 --gameMode "Turf" --genmap 2048 2048</code><br />
<br />
===Permissions===<br />
Go to GAMEFOLDER/settings/globalpermissions.txt and make it look like:<br />
<source><br />
%ADMINS<br />
;UID<br />
</source><br />
replace ;UID with the UID from steam (SteamID3) For example "[U:1:145678]" so I put ";145678"<br />
Can be found here: http://steamid.co/ or from "--HostPlayer" in startserver.log on the local machine.<br />
<br />
<br />
<br />
==Advanced Stuff==<br />
<br />
===Installing Workshop Mods===<br />
<br />
You can use the following script (or similar) to install Steam Workshop mods<br />
<source><br />
login anonymous<br />
force_install_dir /home/<USER>/turf/workshop/<br />
workshop_download_item 404530 1139738481<br />
workshop_download_item 404530 1146791667<br />
workshop_download_item 404530 1147901316<br />
workshop_download_item 404530 1148991672<br />
workshop_download_item 404530 1150505297<br />
workshop_download_item 404530 1151247017<br />
workshop_download_item 404530 1151814594<br />
workshop_download_item 404530 1155491803<br />
workshop_download_item 404530 1157290153<br />
workshop_download_item 404530 1161093711<br />
workshop_download_item 404530 1161805016<br />
workshop_download_item 404530 1163198197<br />
workshop_download_item 404530 1173209773<br />
workshop_download_item 404530 1186472758<br />
workshop_download_item 404530 1188474602<br />
workshop_download_item 404530 1194894626<br />
workshop_download_item 404530 1214171560<br />
workshop_download_item 404530 1214209573<br />
workshop_download_item 404530 1228209888<br />
workshop_download_item 404530 1232559786<br />
workshop_download_item 404530 1286749403<br />
workshop_download_item 404530 1292765889<br />
workshop_download_item 404530 1293667849<br />
workshop_download_item 404530 1297767382<br />
workshop_download_item 404530 1313810046<br />
workshop_download_item 404530 1356700312<br />
workshop_download_item 404530 1357159347<br />
workshop_download_item 404530 1359235841<br />
workshop_download_item 404530 1374585114<br />
workshop_download_item 404530 1382550977<br />
workshop_download_item 404530 1388371537<br />
workshop_download_item 404530 1414621518<br />
workshop_download_item 404530 1362695804<br />
workshop_download_item 404530 1422753063<br />
workshop_download_item 404530 1439594806<br />
workshop_download_item 404530 1438699284<br />
workshop_download_item 404530 1448258410<br />
workshop_download_item 404530 1448258410<br />
workshop_download_item 404530 1567312287<br />
workshop_download_item 404530 1569424047<br />
workshop_download_item 404530 1502040207<br />
workshop_download_item 404530 1686359089<br />
workshop_download_item 404530 1669912546<br />
workshop_download_item 404530 1711533908<br />
workshop_download_item 404530 1408356394<br />
workshop_download_item 404530 1859938129<br />
workshop_download_item 404530 2158310645<br />
workshop_download_item 404530 1220858879<br />
workshop_download_item 404530 1321497749<br />
workshop_download_item 404530 1165605817<br />
workshop_download_item 404530 1254858697<br />
workshop_download_item 404530 1781089616<br />
workshop_download_item 404530 2447555026<br />
workshop_download_item 404530 2413865435<br />
workshop_download_item 404530 2383133708<br />
workshop_download_item 404530 1427795268<br />
workshop_download_item 404530 2667653606<br />
workshop_download_item 404530 2667784591<br />
workshop_download_item 404530 1796008481 <br />
workshop_download_item 404530 2963501169<br />
<br />
<br />
quit<br />
</source><br />
<br />
And then you make vtserver "see" the mods using a symbolic link<br />
<br />
<source><br />
cd ~/turf/<br />
rm -rf mods<br />
ln -s workshop/steamapps/workshop/content/404530/ mods<br />
</source><br />
<br />
===Running the Server Continuously===<br />
This allows you to auto-restart the server if it crashes. You can find this script in <code>/linux_server_admin_scripts_and_instructions/runvtserver.sh</code>.<br />
<br />
<source><br />
#!/bin/bash<br />
BASE=/home/USER/<br />
DIR=$BASE/turf/<br />
while :; do<br />
# Run the server<br />
$DIR/vtserver --saveGame SAVE_FILE --publicGame ON --maxPlayers 8 --serverName "SERVER_NAME"<br />
sleep 1<br />
done<br />
</source><br />
<br />
It is recommended that you run <code>runvtserver.sh</code> through <code>solo.pl</code> (which is provided in <code>/linux_server_admin_scripts_and_instructions/solo.pl</code>. Solo.pl will ensure that ''only one'' instance of the script is running. Solo.pl binds to a port, not a lockfile so it won't break if your system randomly hard resets.<br />
<br />
Use crontab (<code>crontab -e</code>) to enter the following:<br />
<source>* * * * * /home/USER/solo.pl -port=3801 -verbose ./runvtserver.sh >/dev/null 2>&1</source><br />
<br />
Port 3801 is the lock port for solo.pl, NOT the port that vtserver uses. vtserver uses port 5728 by default. The {{file| >/dev/null 2>&1}} is to suppress crontab trying to log and email the console output of vtserver <br />
<br />
<br />
This provides triple redundancy: When the server starts up crontab will run solo.pl which starts runvtserver.sh which runs vtserver. If vtserver crashes then runvtserver.sh will ''immediately'' restart it. Crontab will start runvtserver.sh if it is not running, and solo.pl prevents crontab spawning endless instances of runvtserver.sh.<br />
<br />
===Orderly Shutdown===<br />
vtserver accepts SIG_HUP interrupts. This will cause an orderly shutdown (save and exit). It will also instruct any connected clients to try and reconnect.<br />
<source>killall -s HUP vtserver</source><br />
<br />
===Polling Server Status===<br />
vtserver will create a file in the logs directory: {{file|logs/server_status.txt}}. This file is updated every 30 seconds. You can use this, for example, to update a webpage indicating how many players are on the server.<br />
<br />
Here is an example output:<br />
<source># This file is updated every 30s while the server is running<br />
# timestamp ; serverid ; players ; maxplayers ; public ; serverName ; gamemode ; serverversion<br />
1520494242 ; 3837146104 ; 0 ; 8 ; false ; "" ; "Build" ; 1.1.0-Beta1-g76v<br />
</source><br />
<br />
===serverscript.lua===<br />
[[File:serverscript_lua.png|thumb|Placing a serverscript.lua file in a save game's directory will cause it to be executed by vtserver on startup]]<br />
Placing a plaintext file serverscript.lua in the games save directory will cause the server to execute the script whenever that save is executed. You can use this to write custom mods for the server, give the players stuff when they log in or even redirect players to other servers (you can make stargates)!<br />
<br />
===Periodic Shutdown and Restart with serverscript.lua===<br />
This can be useful to clear the map of dumped vehicles and fix any bugs that may have creeped into the server's state. Here is an example script from the Lets Build A City server that shuts down the server every 6 hours. It also sets the Message Of The Day and shows some other hooks.<br />
<br />
<syntaxhighlight lang=lua><br />
SERVER_RESET_PERIOD = 60*6;<br />
<br />
--Worker functions<br />
function timeTillNextServerReset ()<br />
local NH = turf.NetworkHandler.getInstance(); <br />
local uptime = NH:getUptimeInSeconds();<br />
return SERVER_RESET_PERIOD*60 - uptime, uptime;<br />
end<br />
<br />
function getFormatedTimeTillReset (timeTillReset)<br />
local minutesRemaining = math.floor(timeTillReset/60);<br />
if (minutesRemaining > 2) then return tostring(minutesRemaining) .. " minutes"; end<br />
return tostring(math.max(0, timeTillReset)) .. " seconds!";<br />
end<br />
<br />
-- CustomFunc - code injection<br />
customFunc.OnHour_extra = function (GMS, Net, W, timeOfDay)<br />
local NH = turf.NetworkHandler.getInstance(); <br />
local timeToReset = timeTillNextServerReset ();<br />
<br />
if (timeToReset > 10 and timeToReset < 600) then<br />
NH:broadcastSM ("Server will be rebooting in "..getFormatedTimeTillReset(timeToReset), 0);<br />
end<br />
end<br />
<br />
<br />
-- On new player login<br />
customFunc.OnNewPlayer_extra = function (GMS, P, I, PCr, W)<br />
-- Give them items, send a message, etc<br />
end<br />
<br />
<br />
<br />
-- Toggleable static bool for sending the "restart in X seconds" messages<br />
customFunc.pollServerTick_extra_static_tickCount = 0;<br />
<br />
-- This function is called every tile-entity tick (4Hz), not every server frame tick (variable, 15Hz/33Hz/67Hz depending on user configuration as defined in serverprefs_1000.txt)<br />
customFunc.pollServerTick_extra = function (NH) <br />
local timeToReset = timeTillNextServerReset ();<br />
<br />
-- Send a "RESTARTING IN X" seconds if we are less than 10 seconds to go and this is the first of every 4 ticks.<br />
if (timeToReset < 10 and timeToReset > 0 and customFunc.pollServerTick_extra_static_tickCount == 0) then<br />
NH:broadcastSM ("Rebooting Server in ".. tostring(timeToReset) .. " seconds!", 0);<br />
NH:playSoundToAllClients ("CLICK");<br />
end<br />
customFunc.pollServerTick_extra_static_tickCount = customFunc.pollServerTick_extra_static_tickCount+1;<br />
if (customFunc.pollServerTick_extra_static_tickCount >= 4) then customFunc.pollServerTick_extra_static_tickCount = 0; end<br />
<br />
if (timeToReset <= 0) then<br />
NH:sendAllPlayersToServer ("", ""); -- Telling players to go to (empty string) server tells them to drop and reconnect to this server<br />
NH:flagShutdown (); -- Showdown the server. You'll have to restart it with a shell script<br />
end<br />
end<br />
<br />
<br />
-- No missions on this server!<br />
--turf.MissionHandler.getInstance():removalAllMissions();<br />
<br />
-- Set the MOTD<br />
turf.NetworkHandler.getInstance():setMessageOfTheDay ("==============================\nWelcome to the Let's Build A City server!\n ~SnapperTheTwig\n==============================");<br />
</syntaxhighlight><br />
<br />
[[Category:Guides]]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Running_a_Dedicated_Server&diff=901Running a Dedicated Server2021-07-10T23:13:17Z<p>SnapperTheTwig: /* Installing Workshop Mods */</p>
<hr />
<div>This article explains how to deploy a Voxel Turf Dedicated Server on a Linux VPS.<br />
<br />
== Deploying a VPS ==<br />
You can grap a cheap VPS. A 1 core VPS will get you started but it is recommended that you have a 2 core VPS.<br />
<br />
This article assumes that you have one. HOST can be substituted with the IP address of the server (eg 1.2.3.4).<br />
<br />
===SSH into the server===<br />
(enter this on your local linux termanal)<br />
<source><br />
LOCAL MACHINE:<br />
ssh root@HOST<br />
</source><br />
<br />
<br />
===Set up a user===<br />
<source><br />
useradd -m turf<br />
passwd turf<br />
adduser turf sudo<br />
su - turf<br />
</source><br />
<br />
===Security (Optional)===<br />
<br />
Set up passwordless access via ssh (using keys and not passwords) <br />
<source><br />
LOCAL MACHINE:<br />
ssh-keygen<br />
ssh-copy-id -i ~/.ssh/id_rsa turf@HOST<br />
</source><br />
<br />
Set the ssh port to something other than the default (21). This will help stop people trying to brute force into your server. Also disable root login & password login. To do this, change:<br />
<source><br />
sudo nano /etc/ssh/sshd_config <br />
</source><br />
To:<br />
<source><br />
Port <NEW PORT NUMBER><br />
PermitRootLogin no<br />
ChallengeResponseAuthentication no<br />
PasswordAuthentication no<br />
UsePAM no <br />
</source><br />
<br />
To login to your server you'll have to use:<br />
<source><br />
ssh -p <NEW PORT NUMBER> turf@HOST<br />
</source><br />
<br />
===Tips===<br />
You can set the default shell to bash on the server. This enables tab completion and arrow keys.<br />
<source>sudo chsh -s /bin/bash USERNAME</source><br />
<br />
==Installing Voxel Turf==<br />
===Installing Dependencies===<br />
<source><br />
sudo apt-get update <br />
sudo apt-get upgrade<br />
sudo apt-get install libsdl2-2.0-0 <br />
sudo apt-get install libsdl2-net-2.0-0 <br />
</source><br />
<br />
<br />
===Installing Steam and SteamCMD===<br />
<source><br />
sudo apt-get install lib32gcc1<br />
mkdir Steam<br />
cd Steam<br />
wget http://media.steampowered.com/client/steamcmd_linux.tar.gz<br />
tar -xvzf steamcmd_linux.tar.gz<br />
</source><br />
<br />
Alternatively you can just copy the files from a linux installation of Voxel Turf onto the server<br />
<br />
===Using SteamCMD to install Voxel Turf===<br />
<source><br />
./steamcmd.sh<br />
</source><br />
<br />
In Steam><br />
<source><br />
login anonymous<br />
force_install_dir /home/<USER>/turf<br />
app_update 526340<br />
quit<br />
</source><br />
<br />
You should be now able to run the server and play.<br />
<br />
To install a beta branch use:<br />
<source><br />
app_update 526340 -beta beta validate<br />
</source><br />
<br />
==Running The Server==<br />
Running <code>vtserver --help</code> will give you a list of command line switches.<br />
<br />
===Start Command===<br />
An easy way to generate a start command is to run the game locally (on your machine) and extract the start command from the logs (<code>GAMEFOLDER/logs/startserver.log</code>).<br />
<br />
You should see something like this:<br />
<code>--serverName "YOUR Turf Server" --saveGame "Sora_Turf" --publicGame OFF --dedicated OFF --difficulty 1 --maxPlayers 8 --hostPlayer 36563646 --newGame ON --gameMode "Turf" --genmap 4096 4096 --randomSeed "46756168" --steam</code><br />
<br />
Change it to<br />
<code>--serverName "NAME Turf Server" --saveGame "GAMESAVENAME" --publicGame ON --difficulty 1 --maxPlayers 8 --gameMode "Turf" --genmap 2048 2048</code><br />
<br />
===Permissions===<br />
Go to GAMEFOLDER/settings/globalpermissions.txt and make it look like:<br />
<source><br />
%ADMINS<br />
;UID<br />
</source><br />
replace ;UID with the UID from steam (SteamID3) For example "[U:1:145678]" so I put ";145678"<br />
Can be found here: http://steamid.co/ or from "--HostPlayer" in startserver.log on the local machine.<br />
<br />
<br />
<br />
==Advanced Stuff==<br />
<br />
===Installing Workshop Mods===<br />
<br />
You can use the following script (or similar) to install Steam Workshop mods<br />
<source><br />
login anonymous<br />
force_install_dir /home/<USER>/turf/workshop/<br />
workshop_download_item 404530 1139738481<br />
workshop_download_item 404530 1146791667<br />
workshop_download_item 404530 1147901316<br />
workshop_download_item 404530 1148991672<br />
workshop_download_item 404530 1150505297<br />
workshop_download_item 404530 1151247017<br />
workshop_download_item 404530 1151814594<br />
workshop_download_item 404530 1155491803<br />
workshop_download_item 404530 1157290153<br />
workshop_download_item 404530 1161093711<br />
workshop_download_item 404530 1161805016<br />
workshop_download_item 404530 1163198197<br />
workshop_download_item 404530 1173209773<br />
workshop_download_item 404530 1186472758<br />
workshop_download_item 404530 1188474602<br />
workshop_download_item 404530 1194894626<br />
workshop_download_item 404530 1214171560<br />
workshop_download_item 404530 1214209573<br />
workshop_download_item 404530 1228209888<br />
workshop_download_item 404530 1232559786<br />
workshop_download_item 404530 1286749403<br />
workshop_download_item 404530 1292765889<br />
workshop_download_item 404530 1293667849<br />
workshop_download_item 404530 1297767382<br />
workshop_download_item 404530 1313810046<br />
workshop_download_item 404530 1356700312<br />
workshop_download_item 404530 1357159347<br />
workshop_download_item 404530 1359235841<br />
workshop_download_item 404530 1374585114<br />
workshop_download_item 404530 1382550977<br />
workshop_download_item 404530 1388371537<br />
workshop_download_item 404530 1414621518<br />
workshop_download_item 404530 1362695804<br />
workshop_download_item 404530 1422753063<br />
workshop_download_item 404530 1439594806<br />
workshop_download_item 404530 1438699284<br />
workshop_download_item 404530 1448258410<br />
workshop_download_item 404530 1448258410<br />
workshop_download_item 404530 1567312287<br />
workshop_download_item 404530 1569424047<br />
workshop_download_item 404530 1502040207<br />
workshop_download_item 404530 1686359089<br />
workshop_download_item 404530 1669912546<br />
workshop_download_item 404530 1711533908<br />
workshop_download_item 404530 1408356394<br />
workshop_download_item 404530 1859938129<br />
workshop_download_item 404530 2158310645<br />
workshop_download_item 404530 1220858879<br />
workshop_download_item 404530 1321497749<br />
workshop_download_item 404530 1165605817<br />
workshop_download_item 404530 1254858697<br />
workshop_download_item 404530 1781089616<br />
workshop_download_item 404530 2447555026<br />
workshop_download_item 404530 2413865435<br />
workshop_download_item 404530 2383133708<br />
workshop_download_item 404530 1427795268<br />
<br />
<br />
quit<br />
</source><br />
<br />
And then you make vtserver "see" the mods using a symbolic link<br />
<br />
<source><br />
cd ~/turf/<br />
rm -rf mods<br />
ln -s workshop/steamapps/workshop/content/404530/ mods<br />
</source><br />
<br />
===Running the Server Continuously===<br />
This allows you to auto-restart the server if it crashes. You can find this script in <code>/linux_server_admin_scripts_and_instructions/runvtserver.sh</code>.<br />
<br />
<source><br />
#!/bin/bash<br />
BASE=/home/USER/<br />
DIR=$BASE/turf/<br />
while :; do<br />
# Run the server<br />
$DIR/vtserver --saveGame SAVE_FILE --publicGame ON --maxPlayers 8 --serverName "SERVER_NAME"<br />
sleep 1<br />
done<br />
</source><br />
<br />
It is recommended that you run <code>runvtserver.sh</code> through <code>solo.pl</code> (which is provided in <code>/linux_server_admin_scripts_and_instructions/solo.pl</code>. Solo.pl will ensure that ''only one'' instance of the script is running. Solo.pl binds to a port, not a lockfile so it won't break if your system randomly hard resets.<br />
<br />
Use crontab (<code>crontab -e</code>) to enter the following:<br />
<source>* * * * * /home/USER/solo.pl -port=3801 -verbose ./runvtserver.sh >/dev/null 2>&1</source><br />
<br />
Port 3801 is the lock port for solo.pl, NOT the port that vtserver uses. vtserver uses port 5728 by default. The {{file| >/dev/null 2>&1}} is to suppress crontab trying to log and email the console output of vtserver <br />
<br />
<br />
This provides triple redundancy: When the server starts up crontab will run solo.pl which starts runvtserver.sh which runs vtserver. If vtserver crashes then runvtserver.sh will ''immediately'' restart it. Crontab will start runvtserver.sh if it is not running, and solo.pl prevents crontab spawning endless instances of runvtserver.sh.<br />
<br />
===Orderly Shutdown===<br />
vtserver accepts SIG_HUP interrupts. This will cause an orderly shutdown (save and exit). It will also instruct any connected clients to try and reconnect.<br />
<source>killall -s HUP vtserver</source><br />
<br />
===Polling Server Status===<br />
vtserver will create a file in the logs directory: {{file|logs/server_status.txt}}. This file is updated every 30 seconds. You can use this, for example, to update a webpage indicating how many players are on the server.<br />
<br />
Here is an example output:<br />
<source># This file is updated every 30s while the server is running<br />
# timestamp ; serverid ; players ; maxplayers ; public ; serverName ; gamemode ; serverversion<br />
1520494242 ; 3837146104 ; 0 ; 8 ; false ; "" ; "Build" ; 1.1.0-Beta1-g76v<br />
</source><br />
<br />
===serverscript.lua===<br />
[[File:serverscript_lua.png|thumb|Placing a serverscript.lua file in a save game's directory will cause it to be executed by vtserver on startup]]<br />
Placing a plaintext file serverscript.lua in the games save directory will cause the server to execute the script whenever that save is executed. You can use this to write custom mods for the server, give the players stuff when they log in or even redirect players to other servers (you can make stargates)!<br />
<br />
===Periodic Shutdown and Restart with serverscript.lua===<br />
This can be useful to clear the map of dumped vehicles and fix any bugs that may have creeped into the server's state. Here is an example script from the Lets Build A City server that shuts down the server every 6 hours. It also sets the Message Of The Day and shows some other hooks.<br />
<br />
<syntaxhighlight lang=lua><br />
SERVER_RESET_PERIOD = 60*6;<br />
<br />
--Worker functions<br />
function timeTillNextServerReset ()<br />
local NH = turf.NetworkHandler.getInstance(); <br />
local uptime = NH:getUptimeInSeconds();<br />
return SERVER_RESET_PERIOD*60 - uptime, uptime;<br />
end<br />
<br />
function getFormatedTimeTillReset (timeTillReset)<br />
local minutesRemaining = math.floor(timeTillReset/60);<br />
if (minutesRemaining > 2) then return tostring(minutesRemaining) .. " minutes"; end<br />
return tostring(math.max(0, timeTillReset)) .. " seconds!";<br />
end<br />
<br />
-- CustomFunc - code injection<br />
customFunc.OnHour_extra = function (GMS, Net, W, timeOfDay)<br />
local NH = turf.NetworkHandler.getInstance(); <br />
local timeToReset = timeTillNextServerReset ();<br />
<br />
if (timeToReset > 10 and timeToReset < 600) then<br />
NH:broadcastSM ("Server will be rebooting in "..getFormatedTimeTillReset(timeToReset), 0);<br />
end<br />
end<br />
<br />
<br />
-- On new player login<br />
customFunc.OnNewPlayer_extra = function (GMS, P, I, PCr, W)<br />
-- Give them items, send a message, etc<br />
end<br />
<br />
<br />
<br />
-- Toggleable static bool for sending the "restart in X seconds" messages<br />
customFunc.pollServerTick_extra_static_tickCount = 0;<br />
<br />
-- This function is called every tile-entity tick (4Hz), not every server frame tick (variable, 15Hz/33Hz/67Hz depending on user configuration as defined in serverprefs_1000.txt)<br />
customFunc.pollServerTick_extra = function (NH) <br />
local timeToReset = timeTillNextServerReset ();<br />
<br />
-- Send a "RESTARTING IN X" seconds if we are less than 10 seconds to go and this is the first of every 4 ticks.<br />
if (timeToReset < 10 and timeToReset > 0 and customFunc.pollServerTick_extra_static_tickCount == 0) then<br />
NH:broadcastSM ("Rebooting Server in ".. tostring(timeToReset) .. " seconds!", 0);<br />
NH:playSoundToAllClients ("CLICK");<br />
end<br />
customFunc.pollServerTick_extra_static_tickCount = customFunc.pollServerTick_extra_static_tickCount+1;<br />
if (customFunc.pollServerTick_extra_static_tickCount >= 4) then customFunc.pollServerTick_extra_static_tickCount = 0; end<br />
<br />
if (timeToReset <= 0) then<br />
NH:sendAllPlayersToServer ("", ""); -- Telling players to go to (empty string) server tells them to drop and reconnect to this server<br />
NH:flagShutdown (); -- Showdown the server. You'll have to restart it with a shell script<br />
end<br />
end<br />
<br />
<br />
-- No missions on this server!<br />
--turf.MissionHandler.getInstance():removalAllMissions();<br />
<br />
-- Set the MOTD<br />
turf.NetworkHandler.getInstance():setMessageOfTheDay ("==============================\nWelcome to the Let's Build A City server!\n ~SnapperTheTwig\n==============================");<br />
</syntaxhighlight><br />
<br />
[[Category:Guides]]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Turf_2_Supply_Chain_Ideas&diff=900Turf 2 Supply Chain Ideas2020-07-16T07:43:20Z<p>SnapperTheTwig: Added trade/logistics</p>
<hr />
<div>Ideas for supply chain should go here. If you would like to suggest a resource/chain<br />
<br />
For some recipes all components are compulsory, for others<br />
<br />
==Trade/Logistics==<br />
* Players can hold resources in their inventories, in their vehicles, or in bases/warehouses.<br />
* Bases require Pallet Space to store resources. This can be designated with a special block that is invisible when empty and has boxes/wares when full<br />
* Warehouses can be owned by players for non-commercial purposes (ie, they make no income), but allow them to mass-stockpile things<br />
* Players can do deliveries to buildings and this should level-up their income.<br />
<br />
==Primary Resources==<br />
Primary resources are produced continuously and endlessly from a relevant building based on natural deposits. Perhaps they should be boostable with suitable consumables (such as explosives)<br />
* Iron Ore<br />
* Gravel/Sand/Clay (should these be separate?)<br />
* Oil<br />
* Coal<br />
* Natural Gas<br />
* Uranium<br />
<br />
==Generated Resources==<br />
Require no inputs apart from electricity or water<br />
* Hydrogen (via electrolysis)<br />
<br />
==Agricultural Resources==<br />
Agricultural Resources are grown. They could be generated by themselves, or have their yields increased by having access to something like fertilizer<br />
* Lumber<br />
* Grain<br />
* Spices (Tropical)<br />
* Rubber (Tropical)<br />
<br />
==Building Materials==<br />
Resource requirements for buildings should be some of these <br />
* Bricks ( Clay -> Bricks)<br />
* Concrete ( Sand + Lime -> Concrete )<br />
* Steel ( Iron Ore + Coal -> Steel )<br />
* Wood ( Lumber -> Wood )<br />
* Building Supplies (Bricks / Concrete / Wood / Steel -> Building Supplies) -- Should there be a generic "building supplies" resource?<br />
<br />
==Consumables==<br />
===Residential/Office/Civilian===<br />
* Foods (Grain -> Food)<br />
* Paper (Lumber -> Paper)<br />
<br />
===Industrial/Military===<br />
* Small Arms ( Steel -> Weapons ) -- Should be augmentable with increasingly rare resources to make better tier weapons<br />
* Natural Gas ( Hydrogen + CO2 -> Natural Gas via Sabatier process )<br />
* Ammonia ( Natural Gas -> Ammonia )<br />
* Fertilizer (Ammonia -> Fertilizer)<br />
* Explosives (Fertilizer -> Explosives)<br />
* Munitions ( Steel + Explosives -> Munitions )<br />
* Military Supplies ( Munitions + Small Arms + Long Life Food + Medical Supplies ) -> Military Supplies<br />
<br />
==Waste==<br />
Waste resources are sometimes required to be removed in order to maintain <br />
* CO2 (is normally vented)<br />
* Garbage<br />
<br />
[[Category:Content]]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Turf_2_Design/Suggestions&diff=899Turf 2 Design/Suggestions2020-04-27T10:39:45Z<p>SnapperTheTwig: /* First Person Stuff */</p>
<hr />
<div>=Guidelines For This Page=<br />
The purpose of this page is to document the developer's thoughts as what Turf 2 should be. Head to the [[{{TALKPAGENAME}}|talk page]] to propose an addition.<br />
<br />
''See Also: [[Turf 2 Supply Chain Ideas]]''<br />
<br />
=Base Engine=<br />
* Multiple cities, an entire world to explore<br />
* "Block" based buildings, height-map terrain. Underground layer.<br />
* World divided into tiles, which may be cities, may be vacant, may be wilderness (mountain ranges, deep forests, etc). Tiles are to be irregular in shape<br />
* Cities are to be divided into irregular tiles too. Placing a base in a tile gives building/racketerring/owning permissions for all buildings in or intersecting a tile<br />
* Roads can be placed freeform and lot slots radiate from it (like most modern city builders)<br />
<br />
==Modability==<br />
The VT lotpack system should be expanded to everything<br />
* All assets (textures, blocks, vehicles, missions) should be tag indexed (eg "VANILLA.CONCRETE_BLOCK") and defined by plaintext JSON files.<br />
* Mod assests should have fallbacks required in case a player wants to join a server with a mod installed but does not have said mod.<br />
* In-game mod editor (basically a ui for editing a .json)<br />
* These changes should make modding and adding new assets trivially easy (won't break ids/maps/etc)<br />
<br />
== Performance Goals==<br />
* Multithreaded chunk/terrain renderer (VT uses 1 separate thread, T2 should use as many threads as possible)<br />
* Multithreaded physics, ideally 1 thread/player. Hopefully multithreaded raycasting too.<br />
* Draw distance to the horizon<br />
<br />
==Artistic Goals==<br />
* PBR rending, screenspace reflections, automatic tonemapping<br />
* TODO: Consistent art style for people/terrain<br />
<br />
=Economy=<br />
The game should have 2 economic models: Simple (same as Turf 1 - build buildings, collect money) and Advanced (resource flow, GDP simulation, etc). The rest of this section refers to the Advanced mode<br />
<br />
==Resources==<br />
''See Also: [[Turf 2 Supply Chain Ideas]]''<br />
* Most buildings should create or consume some kind of resource<br />
* Players can either collect the resource and stockpile them (requiring warehouses top store them), or sell them on the open market. Other players can raid these to steal goods.<br />
* Players can spend the resource stockpiles to build buildings, or on upkeep on various things<br />
* Cities can specialise in resources, giving a production bonus<br />
* Resources are traded between cities, via roads/road and sea routes. Players can steal from freight vehicles.<br />
* The should be very big (major) industrial buildings that act as a main industry for a city.<br />
<br />
==Finance==<br />
* (GDP) As factions draw income from buildings money is extracted from the economy, making the citizens poorer. Likewise players spending money will inject money into the economy<br />
** The effect of this is that idling in a city will cause the tax base to shrink and reduce income<br />
<br />
=Warfare=<br />
==Turf Wars==<br />
* Turf Wars should have some kind of casus belli system. Some kind of limited war should be available early game to fight over a single base. Late game you should be able to annex factions entirely to remove them from the city.<br />
* Rather than base attacks players/factions should be able to order squads around on the map. Squads are units of ~5 goons.<br />
* Different unit types, from street goons at the low end, to professional soldiers and armoured units at the high end. Recruiting and maintaining more advanced units will require a supply/resource chain<br />
* Players give a morale/combat bonus to nearby units, encouraging the player to be present in battle<br />
* Units can be placed under the control of AI generals to auto balance front lines and take weakly or unopposed positions<br />
<br />
=Character Building=<br />
==Perks==<br />
* Perks should be replaced with a Tree<br />
* Players should be allowed to multiclass - eg: be able to have both a "Shotguns" build and a "Diplomacy" build<br />
<br />
=Base Building=<br />
* Players should have a reason to manually stylize their home base (and not just have empty flags)<br />
* Factions should have a Capital Base each that grant certain bonuses, have increased warscore value<br />
* Player Stylised Bases > Prefab Bases > Plain Flags<br />
** Ideas: Machine gun turrets/Rocket turrets. Must be manned to take effect<br />
** Bases can have an "Armory" rating that effects their force limits<br />
** Bases can be used to store Commodities in a limited amount. Possibly dependent on pallets?<br />
<br />
=First Person Stuff=<br />
There should be two combat modes - one for casual players "Run and Gun", and "Tactical" for more experienced players<br />
<br />
==Weapons==<br />
In general:<br />
* More weapons, such as Bows/Crossbows<br />
* Melee weapons, such as Baseball Bats & Crowbars<br />
* Bayonet attachments for additional melee damage<br />
* Fun weapons, such as a Potato Gun, or a Gun that shoots Guns<br />
* Utility weapons, such as Grappling Hooks (A grapple attachment could also be a weapon mod)<br />
<br />
==Gunplay==<br />
Run and Gun mode should have spongy enemies and spongy player. Combat should be Juicy.<br />
* Movement should affect accuracy<br />
* Enemies should have some kind of stagger mechanic - hitting them in a weak spot or with shear amounts of firepower should make them stop and flinch.<br />
<br />
<br />
==Movement==<br />
The game should have some sort of skill based movement for Pro-Gamers to do their Pro-Gamer Moves.<br />
* Ledge Grabbing<br />
* Rolling<br />
* Wall Jumping<br />
<br />
This can be used to create normally inaccessible areas in Bandit Bases and Dungeons.<br />
<br />
<br />
<br />
[[Category:Content]]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Turf_2_Design/Suggestions&diff=898Turf 2 Design/Suggestions2020-04-03T05:37:44Z<p>SnapperTheTwig: </p>
<hr />
<div>=Guidelines For This Page=<br />
The purpose of this page is to document the developer's thoughts as what Turf 2 should be. Head to the [[{{TALKPAGENAME}}|talk page]] to propose an addition.<br />
<br />
''See Also: [[Turf 2 Supply Chain Ideas]]''<br />
<br />
=Base Engine=<br />
* Multiple cities, an entire world to explore<br />
* "Block" based buildings, height-map terrain. Underground layer.<br />
* World divided into tiles, which may be cities, may be vacant, may be wilderness (mountain ranges, deep forests, etc). Tiles are to be irregular in shape<br />
* Cities are to be divided into irregular tiles too. Placing a base in a tile gives building/racketerring/owning permissions for all buildings in or intersecting a tile<br />
* Roads can be placed freeform and lot slots radiate from it (like most modern city builders)<br />
<br />
==Modability==<br />
The VT lotpack system should be expanded to everything<br />
* All assets (textures, blocks, vehicles, missions) should be tag indexed (eg "VANILLA.CONCRETE_BLOCK") and defined by plaintext JSON files.<br />
* Mod assests should have fallbacks required in case a player wants to join a server with a mod installed but does not have said mod.<br />
* In-game mod editor (basically a ui for editing a .json)<br />
* These changes should make modding and adding new assets trivially easy (won't break ids/maps/etc)<br />
<br />
== Performance Goals==<br />
* Multithreaded chunk/terrain renderer (VT uses 1 separate thread, T2 should use as many threads as possible)<br />
* Multithreaded physics, ideally 1 thread/player. Hopefully multithreaded raycasting too.<br />
* Draw distance to the horizon<br />
<br />
==Artistic Goals==<br />
* PBR rending, screenspace reflections, automatic tonemapping<br />
* TODO: Consistent art style for people/terrain<br />
<br />
=Economy=<br />
The game should have 2 economic models: Simple (same as Turf 1 - build buildings, collect money) and Advanced (resource flow, GDP simulation, etc). The rest of this section refers to the Advanced mode<br />
<br />
==Resources==<br />
''See Also: [[Turf 2 Supply Chain Ideas]]''<br />
* Most buildings should create or consume some kind of resource<br />
* Players can either collect the resource and stockpile them (requiring warehouses top store them), or sell them on the open market. Other players can raid these to steal goods.<br />
* Players can spend the resource stockpiles to build buildings, or on upkeep on various things<br />
* Cities can specialise in resources, giving a production bonus<br />
* Resources are traded between cities, via roads/road and sea routes. Players can steal from freight vehicles.<br />
* The should be very big (major) industrial buildings that act as a main industry for a city.<br />
<br />
==Finance==<br />
* (GDP) As factions draw income from buildings money is extracted from the economy, making the citizens poorer. Likewise players spending money will inject money into the economy<br />
** The effect of this is that idling in a city will cause the tax base to shrink and reduce income<br />
<br />
=Warfare=<br />
==Turf Wars==<br />
* Turf Wars should have some kind of casus belli system. Some kind of limited war should be available early game to fight over a single base. Late game you should be able to annex factions entirely to remove them from the city.<br />
* Rather than base attacks players/factions should be able to order squads around on the map. Squads are units of ~5 goons.<br />
* Different unit types, from street goons at the low end, to professional soldiers and armoured units at the high end. Recruiting and maintaining more advanced units will require a supply/resource chain<br />
* Players give a morale/combat bonus to nearby units, encouraging the player to be present in battle<br />
* Units can be placed under the control of AI generals to auto balance front lines and take weakly or unopposed positions<br />
<br />
=Character Building=<br />
==Perks==<br />
* Perks should be replaced with a Tree<br />
* Players should be allowed to multiclass - eg: be able to have both a "Shotguns" build and a "Diplomacy" build<br />
<br />
=Base Building=<br />
* Players should have a reason to manually stylize their home base (and not just have empty flags)<br />
* Factions should have a Capital Base each that grant certain bonuses, have increased warscore value<br />
* Player Stylised Bases > Prefab Bases > Plain Flags<br />
** Ideas: Machine gun turrets/Rocket turrets. Must be manned to take effect<br />
** Bases can have an "Armory" rating that effects their force limits<br />
** Bases can be used to store Commodities in a limited amount. Possibly dependent on pallets?<br />
<br />
=First Person Stuff=<br />
==Weapons==<br />
* More weapons, such as Bows/Crossbows<br />
* Melee weapons, such as Baseball Bats & Crowbars<br />
* Bayonet attachments for additional melee damage<br />
* Fun weapons, such as a Potato Gun, or a Gun that shoots Guns<br />
* Utility weapons, such as Grappling Hooks (A grapple attachment could also be a weapon mod)<br />
<br />
==Movement==<br />
The game should have some sort of skill based movement for Pro-Gamers to do their Pro-Gamer Moves.<br />
* Ledge Grabbing<br />
* Rolling<br />
* Wall Jumping<br />
<br />
This can be used to create normally inaccessible areas in Bandit Bases and Dungeons.<br />
<br />
<br />
<br />
[[Category:Content]]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Map_Editing&diff=897Map Editing2020-03-18T09:56:24Z<p>SnapperTheTwig: Created page with "You can create maps with bitmaps as the height maps. An example of a created map is the Lets Build The World map (see here: https://steamcommunity.com/sharedfiles/filedetails/..."</p>
<hr />
<div>You can create maps with bitmaps as the height maps. An example of a created map is the Lets Build The World map (see here: https://steamcommunity.com/sharedfiles/filedetails/?id=1601439756 )<br />
<br />
To do so use the `--loadBitmapMap` launch option for vtserver. Full article: [[Command_Line_Switches#Server_(vtserver)|Command Line Switches]]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Main_Page&diff=896Main Page2020-03-18T08:17:36Z<p>SnapperTheTwig: /* Reference */</p>
<hr />
<div>[[File:logo.jpg|center|link=Main Page]]<br />
__NOTOC__<br />
<br />
'''Welcome''' to the '''Voxel Turf Wiki'''! [http://store.steampowered.com/app/404530 Voxel Turf] is a game that combines Action and Strategy with City Building.<br />
<br />
If you wish to contribute to this wiki check out the [[Project:Style|Style Guide]] first. There are many [[:Category:Stubs|Stub articles]] that need work!<br />
<br />
<div class="row"><div class="column50" style="height: 100%"><div class="vtbox margin1" style="height: 100%"><br />
== Reference ==<br />
[[Bandit Base|Bandit Base Raiding]]<br />
<br />
[[Control Points]]<br />
<br />
[[Weapons|Weapons and Combat]]<br />
<br />
[[Dungeons]]<br />
<br />
[[Vehicles]]<br />
<br />
[[Stats]]<br />
<br />
[[Perks]]<br />
<br />
[[Blocks|Blocks and Manual Construction]]<br />
<br />
[[Electronics|Electronics and Circuits]]<br />
<br />
[[Base|Bases]]<br />
<br />
[[Base#Defender Goons|Hired Goons]]<br />
<br />
[[Map Editing]]<br />
<br />
[[City Building]]<br />
<br />
[[Reward Buildings]]<br />
<br />
[[Missions]]<br />
<br />
[[Factions]]<br />
<br />
[[Turf Wars]]<br />
<br />
[[Racketeering]]<br />
<br />
[[Custom Buildings]]<br />
<br />
[[Economy]]<br />
<br />
[[Insurance and Repair]]<br />
<br />
[[The CDF]]<br />
<br />
[[Strategic_Pause|Strategic Pausing]]<br />
<br />
[[Waypoints|Waypoints/Markers]]<br />
<br />
</div></div><br />
<div class="column50"><div class="vtbox margin1"><br />
<br />
== Game Info ==<br />
[[Version History]]<br />
<br />
[[ Modding Guide ]]<br />
<br />
[[ Running a Dedicated Server ]]<br />
<br />
[[Troubleshooting]]<br />
<br />
[[Port Forwarding]]<br />
<br />
[[Console Commands|Cheats/In-game Console Commands]]<br />
<br />
[[ Command Line Switches | Launch Options/Command Line Switches ]]<br />
</div><div class="vtbox margin1"><br />
<br />
== Community ==<br />
[[ Public Servers ]]<br />
<br />
[[ Workshop Mods ]]<br />
<br />
[[ Youtubers/Streamers ]]<br />
<br />
[[ Discord ]]<br />
</div><br />
<div class="vtbox margin1"><br />
== Links ==<br />
[http://store.steampowered.com/app/404530 Voxel Turf on Steam ]<br />
<br />
[http://www.indiedb.com/games/voxel-turf Voxel Turf on IndieDb ]<br />
<br />
[https://discord.gg/UDV6qGj Official Discord ]<br />
<br />
[http://www.voxelturf.net Official Website ]<br />
<br />
[https://twitter.com/SnapperTheTwig Developer's Twitter]<br />
<br />
[https://www.youtube.com/user/snapperthetwig Developer's YouTube]<br />
</div><br />
<div class="vtbox margin1"><br />
== Turf 2 Stuff ==<br />
[[Turf 2 Design/Suggestions]]<br />
<br />
[[Turf 2 Supply Chain Ideas]]<br />
</div><br />
</div><br />
<div class="clear"></div><br />
<br />
<div class="vtbox margin1"><br />
<br />
==IndieDb Dev Diaries==<br />
IndieDB articles contain valuable information about the game. These may contain information and pictures that are yet to be moved here<br />
<br />
Dev Diary 1: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-1-economic-engine-part-1 Economic Engine I: Building Types, Supply and Demand ]<br />
<br />
Dev Diary 2: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-2-economic-engine-part-2 Economic Engine II: Modifiers, Desirability, Safety Rating, Repairing and Custom Buildings ]<br />
<br />
Dev Diary 3: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-3-weapons-part-1-small-arms-and-weapon-mods Weapons I: Small Arms and Weapon Mods ]<br />
<br />
Dev Diary 4: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-4-weapons-part-2-rockets-explosives-and-blast-resistance Weapons II: Rockets, Explosives and Blast Resistance ]<br />
<br />
Dev Diary 5: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-5-mechanisms-and-electronics Mechanisms, Circuits and Electronics ]<br />
<br />
Dev Diary 6: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-6-meet-the-law Dealing with the Law (CDF) ] (+[https://www.youtube.com/watch?v=dArgA4gTk0Q Youtube Video - Dealing with the CDF ])<br />
<br />
Dev Diary 7: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-7-urban-grand-strategy Urban Grand Strategy - Turf Wars and Diplomacy ] (+[https://www.youtube.com/watch?v=TOkzzSH0vSw Youtube Video - Urban Grand Strategy ])<br />
<br />
Dev Diary 8: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-8-protection-rackets-and-reputation-wide-vs-tall-play Reputation and Racketeering - Wide vs Tall ]<br />
<br />
Dev Diary 9: [http://www.indiedb.com/games/voxel-turf/news/watch-release-announcement-infinite-rockets-dev-diary-9-meet-the-bandits Meet the Bandits + Bandit Base Raiding &amp; Looting ] (+[https://www.youtube.com/watch?v=q5qsUZu-Vi4 Youtube Video - Fun with Infinite Rockets ])<br />
<br />
Dev Diary 10: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-10-missions-and-co-op Missions &amp; Co-Op ] (+[https://www.youtube.com/watch?v=oiza0Spxd5A Youtube Video - Racing Mission ])<br />
<br />
Dev Diary 11: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-11-player-bases-and-base-building Player Bases &amp; Base Building ]<br />
<br />
Dev Diary 12: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-12-stats-and-perks Stats and Perks ]<br />
<br />
Dev Diary 13: [http://www.indiedb.com/games/voxel-turf/news/2x-video-article-dev-diary-13-city-building-zoning-reward-buildings City Building, Zoning and Reward Buildings ] (+[https://www.youtube.com/watch?v=ffTSeiQTkCM Youtube Video - City Building Guide ]) (+[https://www.youtube.com/watch?v=8ZiuJ9hSmBo Youtube Video - Custom Buildings and Templates ])<br />
<br />
Dev Diary 14: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-14-boats-hovercrafts-patch Boats, Hovercrafts and Canals ]<br />
<br />
Dev Diary 15: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-15-new-bandit-base-car-shop-waypoint-system-moar New Bandit Base and Caryard + Waypoint System + Strategic Pausing ]<br />
<br />
Dev Diary 16: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-16-control-points-vehicle-storage-base-escapes-renamable-bases Control Points, Vehicle Storage, Base Escapes, Renameable Bases]<br />
<br />
Major Update 4: [https://www.indiedb.com/games/voxel-turf/news/major-update-version-120-multiplayer-faction-system-flags-map-gen Mulitplayer Faction System, Flags and Flag Creator, Map Generator Upgrades]<br />
<br />
Dev Diary 17: [https://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-17-gunplay-improvements-new-dungeon-system Gunplay Improvements + New Dungeon System]<br />
</div></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Modding_Guide&diff=895Modding Guide2020-02-27T10:03:57Z<p>SnapperTheTwig: /* File Structure & Overrides */</p>
<hr />
<div>{{version|1.1.5}}<br />
{{stub}}<br />
==File Structure & Overrides==<br />
You can create a mod by placing files that mimic the directory structure of the game in the mod directory. The game will load these files in preference to the the normal ones.<br />
<br />
So to create a mod called "TestMod" that replaces {{file|/textures/blocks/tex0.tga}}, create a file called tex0.tga (or .png or .jpg for textures) and place it in {{file|/mods/MODNAME/textures/blocks/tex0.tga}}. Done!<br />
<br />
A notable exception is .lua files which will not be replaced. Instead you will have to inject your code. This is done so that updates to the base game don't break script mods, and that modders don't have to reimplement base game code. Also user settings files in the settings/ will not be replaced<br />
<br />
==Injecting Lua Code==<br />
When making a mod script you must make a {{file|mods/MODNAME/scripts/server_scripts.txt}} and/or a {{file|mods/MODNAME/scripts/client_scripts.txt}} for scripts to be executed on the client/server respectively. This file is just a list of the script files that you want in your mod in the order you want them to be loaded. Scripts are executed immediately when loaded.<br />
<br />
Many functions in the base game have hooks that you can access by adding a function to a relevant table. For instance, in {{file|scripts/common/define_weapons.lua}} there is a section that reads:<br />
<source><br />
-- Call the user callbacks<br />
if (defineWeaponsUserCallback) then<br />
for i = 1,#defineWeaponsUserCallback do<br />
if (type(defineWeaponsUserCallback[i][2]) == 'function') then<br />
defineWeaponsUserCallback[i][2](BlockTypes, ItemTypes);<br />
end<br />
end<br />
end<br />
</source><br />
<br />
This means in your mod you can write your own function and have it accessed when the callback is called by the base game:<br />
<source><br />
function myWeaponMod (BlockTypes, ItemTypes)<br />
-- Your mod goes here<br />
end<br />
<br />
-- Add it to the callbacks table<br />
if (defineWeaponsUserCallback == nil) then defineWeaponsUserCallback = {} end<br />
defineWeaponsUserCallback[#defineWeaponsUserCallback+1] = { "myWeaponMod | my description/documentation ", myWeaponMod };<br />
</source><br />
<br />
Also note that the server has "--strictlua" set to on, but the client has it set to off. This means that if the server hits a lua error it'll shutdown and log the error in your logs directory. The client will not shutdown.<br />
<br />
{{stubsection}}<br />
<br />
==Adding new Buildings - Lotpacks==<br />
{{main|LotPack}}<br />
<br />
You can make your own buildings and save them as templates but these are only available to you.<br />
<br />
The idea behind LotPacks is that you can bundle heaps of buildings together in one easy package that can be grabbed off the workshop. LotPacks don't change your game's checksum so you can play in multiplayer with players that have different LotPacks installed. You can only use buildings that are installed on the server though.<br />
<br />
The game comes with a LotPack already - vanilla, and can be found in {{file|/lots/packs/vanilla}}. A pack consists of a text file with definitions and a directory full of .lot files.<br />
<br />
To generate a .lot file stand in the lot you want to save and enter:<br />
{{console|/lot save DIR FILENAME}}<br />
where DIR is the current facing of the lot (N,S,E,W)<br />
For example:<br />
{{console|/lot save n test}}<br />
Will create a test.lot in your lots/ directory<br />
<br />
You can also use lots created from saved templates!<br />
Go into {{file|/lots/template/player<your steamId32>/}} and there is already a .lot file and a text file with the lines you need to copy into a definition file!<br />
<br />
===Nikolai's LotPack Guide===<br />
Nikolai has made a *very* detailed LotPack guide here:<br />
https://steamcommunity.com/sharedfiles/filedetails/?id=1399694457 <br />
<br />
===General Curmudgeon's Video===<br />
A video of General Curmudgeon creating and uploading a LotPack to the workshop<br />
https://www.youtube.com/watch?v=L3DVhESic20<br />
<br />
==Uploading to Steam Workshop==<br />
Smack your mod into the /mods/upload directory and edit upload.txt. Then run Voxel Turf from Steam, this will upload the mod on startup. If you are using a preview image it is best to put it in the same directory as upload.txt and invoke it directly.<br />
<br />
==Links==<br />
[https://steamcommunity.com/app/404530/workshop/ Voxel Turf Workshop on Steam]<br />
<br />
[[Category:Guides]]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Turf_2_Design/Suggestions&diff=894Turf 2 Design/Suggestions2020-01-31T05:23:36Z<p>SnapperTheTwig: </p>
<hr />
<div>=Guidelines For This Page=<br />
The purpose of this page is to document the developer's thoughts as what Turf 2 should be. Head to the [[{{TALKPAGENAME}}|talk page]] to propose an addition.<br />
<br />
''See Also: [[Turf 2 Supply Chain Ideas]]''<br />
<br />
=Base Engine=<br />
* Multiple cities, an entire world to explore<br />
* "Block" based buildings, height-map terrain. Underground layer.<br />
* World divided into tiles, which may be cities, may be vacant, may be wilderness (mountain ranges, deep forests, etc). Tiles are to be irregular in shape<br />
* Cities are to be divided into irregular tiles too. Placing a base in a tile gives building/racketerring/owning permissions for all buildings in or intersecting a tile<br />
* Roads can be placed freeform and lot slots radiate from it (like most modern city builders)<br />
<br />
==Modability==<br />
The VT lotpack system should be expanded to everything<br />
* All assets (textures, blocks, vehicles, missions) should be tag indexed (eg "VANILLA.CONCRETE_BLOCK") and defined by plaintext JSON files.<br />
* Mod assests should have fallbacks required in case a player wants to join a server with a mod installed but does not have said mod.<br />
* In-game mod editor (basically a ui for editing a .json)<br />
* These changes should make modding and adding new assets trivially easy (won't break ids/maps/etc)<br />
<br />
== Performance Goals==<br />
* Multithreaded chunk/terrain renderer (VT uses 1 separate thread, T2 should use as many threads as possible)<br />
* Multithreaded physics, ideally 1 thread/player. Hopefully multithreaded raycasting too.<br />
* Draw distance to the horizon<br />
<br />
==Artistic Goals==<br />
* PBR rending, screenspace reflections, automatic tonemapping<br />
* TODO: Consistent art style for people/terrain<br />
<br />
=Economy=<br />
The game should have 2 economic models: Simple (same as Turf 1 - build buildings, collect money) and Advanced (resource flow, GDP simulation, etc). The rest of this section refers to the Advanced mode<br />
<br />
==Resources==<br />
''See Also: [[Turf 2 Supply Chain Ideas]]''<br />
* Most buildings should create or consume some kind of resource<br />
* Players can either collect the resource and stockpile them (requiring warehouses top store them), or sell them on the open market. Other players can raid these to steal goods.<br />
* Players can spend the resource stockpiles to build buildings, or on upkeep on various things<br />
* Cities can specialise in resources, giving a production bonus<br />
* Resources are traded between cities, via roads/road and sea routes. Players can steal from freight vehicles.<br />
* The should be very big (major) industrial buildings that act as a main industry for a city.<br />
<br />
==Finance==<br />
* (GDP) As factions draw income from buildings money is extracted from the economy, making the citizens poorer. Likewise players spending money will inject money into the economy<br />
** The effect of this is that idling in a city will cause the tax base to shrink and reduce income<br />
<br />
=Warfare=<br />
==Turf Wars==<br />
* Turf Wars should have some kind of casus belli system. Some kind of limited war should be available early game to fight over a single base. Late game you should be able to annex factions entirely to remove them from the city.<br />
* Rather than base attacks players/factions should be able to order squads around on the map. Squads are units of ~5 goons.<br />
* Different unit types, from street goons at the low end, to professional soldiers and armoured units at the high end. Recruiting and maintaining more advanced units will require a supply/resource chain<br />
* Players give a morale/combat bonus to nearby units, encouraging the player to be present in battle<br />
* Units can be placed under the control of AI generals to auto balance front lines and take weakly or unopposed positions<br />
<br />
=Character Building=<br />
==Perks==<br />
* Perks should be replaced with a Tree<br />
* Players should be allowed to multiclass - eg: be able to have both a "Shotguns" build and a "Diplomacy" build<br />
<br />
=Base Building=<br />
* Players should have a reason to manually stylize their home base (and not just have empty flags)<br />
* Factions should have a Capital Base each that grant certain bonuses, have increased warscore value<br />
* Player Stylised Bases > Prefab Bases > Plain Flags<br />
** Ideas: Machine gun turrets/Rocket turrets. Must be manned to take effect<br />
** Bases can have an "Armory" rating that effects their force limits<br />
** Bases can be used to store Commodities in a limited amount. Possibly dependent on pallets?<br />
<br />
[[Category:Content]]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Turf_2_Design/Suggestions&diff=837Turf 2 Design/Suggestions2019-11-05T11:49:11Z<p>SnapperTheTwig: </p>
<hr />
<div>=Guidelines For This Page=<br />
The purpose of this page is to document the developer's thoughts as what Turf 2 should be. Head to the [[{{TALKPAGENAME}}|talk page]] to propose an addition.<br />
<br />
=Base Engine=<br />
* Multiple cities, an entire world to explore<br />
* "Block" based buildings, height-map terrain. Underground layer.<br />
* World divided into tiles, which may be cities, may be vacant, may be wilderness (mountain ranges, deep forests, etc). Tiles are to be irregular in shape<br />
* Cities are to be divided into irregular tiles too. Placing a base in a tile gives building/racketerring/owning permissions for all buildings in or intersecting a tile<br />
* Roads can be placed freeform and lot slots radiate from it (like most modern city builders)<br />
<br />
==Modability==<br />
The VT lotpack system should be expanded to everything<br />
* All assets (textures, blocks, vehicles, missions) should be tag indexed (eg "VANILLA.CONCRETE_BLOCK") and defined by plaintext JSON files.<br />
* Mod assests should have fallbacks required in case a player wants to join a server with a mod installed but does not have said mod.<br />
* In-game mod editor (basically a ui for editing a .json)<br />
* These changes should make modding and adding new assets trivially easy (won't break ids/maps/etc)<br />
<br />
== Performance Goals==<br />
* Multithreaded chunk/terrain renderer (VT uses 1 separate thread, T2 should use as many threads as possible)<br />
* Multithreaded physics, ideally 1 thread/player. Hopefully multithreaded raycasting too.<br />
* Draw distance to the horizon<br />
<br />
==Artistic Goals==<br />
* PBR rending, screenspace reflections, automatic tonemapping<br />
* TODO: Consistent art style for people/terrain<br />
<br />
=Economy=<br />
The game should have 2 economic models: Simple (same as Turf 1 - build buildings, collect money) and Advanced (resource flow, GDP simulation, etc). The rest of this section refers to the Advanced mode<br />
<br />
==Resources==<br />
''See Also: [[Turf 2 Supply Chain Ideas]]''<br />
* Most buildings should create or consume some kind of resource<br />
* Players can either collect the resource and stockpile them (requiring warehouses top store them), or sell them on the open market. Other players can raid these to steal goods.<br />
* Players can spend the resource stockpiles to build buildings, or on upkeep on various things<br />
* Cities can specialise in resources, giving a production bonus<br />
* Resources are traded between cities, via roads/road and sea routes. Players can steal from freight vehicles.<br />
* The should be very big (major) industrial buildings that act as a main industry for a city.<br />
<br />
==Finance==<br />
* (GDP) As factions draw income from buildings money is extracted from the economy, making the citizens poorer. Likewise players spending money will inject money into the economy<br />
** The effect of this is that idling in a city will cause the tax base to shrink and reduce income<br />
<br />
<br />
=Warfare=<br />
==Turf Wars==<br />
* Turf Wars should have some kind of casus belli system. Some kind of limited war should be available early game to fight over a single base. Late game you should be able to annex factions entirely to remove them from the city.<br />
* Rather than base attacks players/factions should be able to order squads around on the map. Squads are units of ~5 goons.<br />
* Different unit types, from street goons at the low end, to professional soldiers and armoured units at the high end. Recruiting and maintaining more advanced units will require a supply/resource chain<br />
* Players give a morale/combat bonus to nearby units, encouraging the player to be present in battle<br />
* Units can be placed under the control of AI generals to auto balance front lines and take weakly or unopposed positions<br />
<br />
<br />
=Character Building=<br />
==Perks==<br />
* Perks should be replaced with a Tree<br />
* Players should be allowed to multiclass - eg: be able to have both a "Shotguns" build and a "Diplomacy" build<br />
<br />
<br />
=Base Building=<br />
* Players should have a reason to manually stylize their home base (and not just have empty flags)<br />
* Factions should have a Capital Base each that grant certain bonuses, have increased warscore value<br />
* Player Stylised Bases > Prefab Bases > Plain Flags<br />
** Ideas: Machine gun turrets/Rocket turrets. Must be manned to take effect<br />
** Bases can have an "Armory" rating that effects their force limits<br />
** Bases can be used to store Commodities in a limited amount. Possibly dependent on pallets?</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Category:Up_To_Date_Articles&diff=836Category:Up To Date Articles2019-09-27T12:23:02Z<p>SnapperTheTwig: </p>
<hr />
<div>These articles have up to date [[Voxel_Turf_Wiki:versioning|version]] info. For out of date articles that may need work, see: [[:Category:Potentially_Outdated_Articles]]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Category:Potentially_Outdated_Articles&diff=835Category:Potentially Outdated Articles2019-09-27T12:22:24Z<p>SnapperTheTwig: </p>
<hr />
<div>These articles need to be checked to see if the information is up to date. See the [[Voxel_turf_wiki:versioning|versioning]] page for more details. For up to date articles, see: [[:Category:Up_To_Date_Articles]].</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Console_Commands&diff=834Console Commands2019-09-27T12:19:59Z<p>SnapperTheTwig: Created page with "{{Version|1.6.0}} See: http://www.voxelturf.net/console_command_guide.php"</p>
<hr />
<div>{{Version|1.6.0}}<br />
See: http://www.voxelturf.net/console_command_guide.php</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Main_Page&diff=833Main Page2019-09-27T12:15:46Z<p>SnapperTheTwig: /* Game Info */</p>
<hr />
<div>[[File:logo.jpg|center|link=Main Page]]<br />
__NOTOC__<br />
<br />
'''Welcome''' to the '''Voxel Turf Wiki'''! [http://store.steampowered.com/app/404530 Voxel Turf] is a game that combines Action and Strategy with City Building.<br />
<br />
If you wish to contribute to this wiki check out the [[Project:Style|Style Guide]] first. There are many [[:Category:Stubs|Stub articles]] that need work!<br />
<br />
<div class="row"><div class="column50" style="height: 100%"><div class="vtbox margin1" style="height: 100%"><br />
== Reference ==<br />
[[Bandit Base|Bandit Base Raiding]]<br />
<br />
[[Control Points]]<br />
<br />
[[Weapons|Weapons and Combat]]<br />
<br />
[[Dungeons]]<br />
<br />
[[Vehicles]]<br />
<br />
[[Stats]]<br />
<br />
[[Perks]]<br />
<br />
[[Blocks|Blocks and Manual Construction]]<br />
<br />
[[Electronics|Electronics and Circuits]]<br />
<br />
[[Base|Bases]]<br />
<br />
[[Base#Defender Goons|Hired Goons]]<br />
<br />
[[City Building]]<br />
<br />
[[Reward Buildings]]<br />
<br />
[[Missions]]<br />
<br />
[[Factions]]<br />
<br />
[[Turf Wars]]<br />
<br />
[[Racketeering]]<br />
<br />
[[Custom Buildings]]<br />
<br />
[[Economy]]<br />
<br />
[[Insurance and Repair]]<br />
<br />
[[The CDF]]<br />
<br />
[[Strategic_Pause|Strategic Pausing]]<br />
<br />
[[Waypoints|Waypoints/Markers]]<br />
<br />
</div></div><br />
<div class="column50"><div class="vtbox margin1"><br />
== Game Info ==<br />
[[Version History]]<br />
<br />
[[ Modding Guide ]]<br />
<br />
[[ Running a Dedicated Server ]]<br />
<br />
[[Troubleshooting]]<br />
<br />
[[Port Forwarding]]<br />
<br />
[[Console Commands|Cheats/In-game Console Commands]]<br />
<br />
[[ Command Line Switches | Launch Options/Command Line Switches ]]<br />
</div><div class="vtbox margin1"><br />
<br />
== Community ==<br />
[[ Public Servers ]]<br />
<br />
[[ Workshop Mods ]]<br />
<br />
[[ Youtubers/Streamers ]]<br />
<br />
[[ Discord ]]<br />
</div><br />
<div class="vtbox margin1"><br />
== Links ==<br />
[http://store.steampowered.com/app/404530 Voxel Turf on Steam ]<br />
<br />
[http://www.indiedb.com/games/voxel-turf Voxel Turf on IndieDb ]<br />
<br />
[https://discord.gg/UDV6qGj Official Discord ]<br />
<br />
[http://www.voxelturf.net Official Website ]<br />
<br />
[https://twitter.com/SnapperTheTwig Developer's Twitter]<br />
<br />
[https://www.youtube.com/user/snapperthetwig Developer's YouTube]<br />
</div><br />
<div class="vtbox margin1"><br />
== Turf 2 Stuff ==<br />
[[Turf 2 Design/Suggestions]]<br />
<br />
[[Turf 2 Supply Chain Ideas]]<br />
</div><br />
</div><br />
<div class="clear"></div><br />
<br />
<div class="vtbox margin1"><br />
<br />
==IndieDb Dev Diaries==<br />
IndieDB articles contain valuable information about the game. These may contain information and pictures that are yet to be moved here<br />
<br />
Dev Diary 1: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-1-economic-engine-part-1 Economic Engine I: Building Types, Supply and Demand ]<br />
<br />
Dev Diary 2: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-2-economic-engine-part-2 Economic Engine II: Modifiers, Desirability, Safety Rating, Repairing and Custom Buildings ]<br />
<br />
Dev Diary 3: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-3-weapons-part-1-small-arms-and-weapon-mods Weapons I: Small Arms and Weapon Mods ]<br />
<br />
Dev Diary 4: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-4-weapons-part-2-rockets-explosives-and-blast-resistance Weapons II: Rockets, Explosives and Blast Resistance ]<br />
<br />
Dev Diary 5: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-5-mechanisms-and-electronics Mechanisms, Circuits and Electronics ]<br />
<br />
Dev Diary 6: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-6-meet-the-law Dealing with the Law (CDF) ] (+[https://www.youtube.com/watch?v=dArgA4gTk0Q Youtube Video - Dealing with the CDF ])<br />
<br />
Dev Diary 7: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-7-urban-grand-strategy Urban Grand Strategy - Turf Wars and Diplomacy ] (+[https://www.youtube.com/watch?v=TOkzzSH0vSw Youtube Video - Urban Grand Strategy ])<br />
<br />
Dev Diary 8: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-8-protection-rackets-and-reputation-wide-vs-tall-play Reputation and Racketeering - Wide vs Tall ]<br />
<br />
Dev Diary 9: [http://www.indiedb.com/games/voxel-turf/news/watch-release-announcement-infinite-rockets-dev-diary-9-meet-the-bandits Meet the Bandits + Bandit Base Raiding &amp; Looting ] (+[https://www.youtube.com/watch?v=q5qsUZu-Vi4 Youtube Video - Fun with Infinite Rockets ])<br />
<br />
Dev Diary 10: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-10-missions-and-co-op Missions &amp; Co-Op ] (+[https://www.youtube.com/watch?v=oiza0Spxd5A Youtube Video - Racing Mission ])<br />
<br />
Dev Diary 11: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-11-player-bases-and-base-building Player Bases &amp; Base Building ]<br />
<br />
Dev Diary 12: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-12-stats-and-perks Stats and Perks ]<br />
<br />
Dev Diary 13: [http://www.indiedb.com/games/voxel-turf/news/2x-video-article-dev-diary-13-city-building-zoning-reward-buildings City Building, Zoning and Reward Buildings ] (+[https://www.youtube.com/watch?v=ffTSeiQTkCM Youtube Video - City Building Guide ]) (+[https://www.youtube.com/watch?v=8ZiuJ9hSmBo Youtube Video - Custom Buildings and Templates ])<br />
<br />
Dev Diary 14: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-14-boats-hovercrafts-patch Boats, Hovercrafts and Canals ]<br />
<br />
Dev Diary 15: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-15-new-bandit-base-car-shop-waypoint-system-moar New Bandit Base and Caryard + Waypoint System + Strategic Pausing ]<br />
<br />
Dev Diary 16: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-16-control-points-vehicle-storage-base-escapes-renamable-bases Control Points, Vehicle Storage, Base Escapes, Renameable Bases]<br />
<br />
Major Update 4: [https://www.indiedb.com/games/voxel-turf/news/major-update-version-120-multiplayer-faction-system-flags-map-gen Mulitplayer Faction System, Flags and Flag Creator, Map Generator Upgrades]<br />
<br />
Dev Diary 17: [https://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-17-gunplay-improvements-new-dungeon-system Gunplay Improvements + New Dungeon System]<br />
</div></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Version_History&diff=832Version History2019-09-24T09:10:04Z<p>SnapperTheTwig: /* Patch 1.6.0 */</p>
<hr />
<div>This page lists major changes with the game over time.<br />
<br />
==Version 1.6.0==<br />
====Patch 1.6.0====<br />
* Added Biome Maps (Temperate, Snow, Desert and Mesa)<br />
* New Blocks (Cactus, Red Sand, Snow), and New Trees<br />
* Performance Increases<br />
* Added /rotate, /mirror and /lotrange commands<br />
* Added Wasteland lots, which are creatable via server commands<br />
<br />
==Version 1.5.0==<br />
====Patch 1.5.0====<br />
* Added a Military Base Control Point<br />
* Added placeable manual road lots<br />
* Civilians now duck when gunfire is happening in a building<br />
<br />
==Version 1.4.0==<br />
====Patch 1.4.2====<br />
* Performance Optimisations for large maps<br />
<br />
====Patch 1.4.0====<br />
* Added Light Plane Vehicle and Airfields<br />
* Added Controls side tooltip<br />
* Added the News panel to the main menu<br />
<br />
==Version 1.3.0==<br />
====Patch 1.3.0====<br />
* Added Dungeons<br />
* Reworked Gunplay<br />
* Bandits can wear body armour<br />
<br />
==Version 1.2.0==<br />
====Patch 1.2.3====<br />
* Added a Mod Picker to the main menu<br />
<br />
====Patch 1.2.0====<br />
* Adds Player Factions<br />
<br />
==Version 1.1.0==<br />
<br />
====Patch 1.1.6====<br />
* Adds Flags<br />
<br />
====Patch 1.1.4====<br />
* Adds Control Points<br />
* Adds Vehicle Storage - all vehicles that you use will be saved if near a base<br />
* Added Base Escapes<br />
* Bases are now renamable<br />
<br />
====Patch 1.1.2====<br />
* New bandit base<br />
* New cheats (/heal, /godmode, /nofuzz, /specialbuild<br />
* Added Hit Confirmation<br />
<br />
====Patch 1.1.0====<br />
* Goons Can Follow You and be issued orders - Follow you, Guard Position, Advance to Map Marker or Return to Base<br />
* AI factions can now build cities<br />
* New Game Mode: Strat Zero<br />
* Goons Wear Colours<br />
* Human players can launch base attacks<br />
* Major Economy Rebalance<br />
* Peace Deal Rework - new peace options + warscore system. UI gives breakdown if the AI will accpet/reject an offer and why<br />
* Vehicles, friendly goons and the CDF appear on the minimap<br />
* Damaged parts of the city will rebuild over time<br />
* Faction Information Breakdown - see the base limits, cash flow and base attack limits of other factions from the diplomacy screen<br />
* Repairing lots no longer wipes chests<br />
* Killing a bandit/base defender will suppress respawns<br />
* More shop icons on the map<br />
<br />
==Version 1.0.0==<br />
====Patch 1.0.28====<br />
* Waypoints appear in the world<br />
* New bandit base (the Bandit Factory)<br />
* Improved mouse code (hardware mouse instead of software mouse, more responsive)<br />
* Added [[Strategic Pause|Strategic Pausing]]<br />
<br />
====Patch 1.0.26====<br />
* Added Boats<br />
* Added Hovercrafts. Hovercrafts can boost by holding sprint or hover by holding jump<br />
* Added Marinas<br />
* Added Hovercraft Shops<br />
* Added canals<br />
<br />
====Patch 1.0.23====<br />
* Improved AI Patchfinding<br />
* Added Headshots<br />
<br />
====Patch 1.0.19====<br />
* Blocks crumble when destroyed<br />
<br />
====Patch 1.0.18====<br />
* Bases can be placed directly from the fortifications menu<br />
<br />
====Patch 1.0.14====<br />
* Massive FPS boost due to cpu/gpu binding opimisations. Can result in up to 3x improvement in frame rate<br />
<br />
====Patch 1.0.11====<br />
* Removing blocks returns the item to your inventory<br />
<br />
====Patch 1.0.0====<br />
* Initial Release</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Version_History&diff=831Version History2019-09-24T09:08:39Z<p>SnapperTheTwig: </p>
<hr />
<div>This page lists major changes with the game over time.<br />
<br />
==Version 1.6.0==<br />
====Patch 1.6.0====<br />
* Added Biome Maps (Temperate, Snow, Desert and Mesa)<br />
* New Blocks (Cactus, Red Sand, Snow), and New Trees<br />
* Performance Increases<br />
<br />
==Version 1.5.0==<br />
====Patch 1.5.0====<br />
* Added a Military Base Control Point<br />
* Added placeable manual road lots<br />
* Civilians now duck when gunfire is happening in a building<br />
<br />
==Version 1.4.0==<br />
====Patch 1.4.2====<br />
* Performance Optimisations for large maps<br />
<br />
====Patch 1.4.0====<br />
* Added Light Plane Vehicle and Airfields<br />
* Added Controls side tooltip<br />
* Added the News panel to the main menu<br />
<br />
==Version 1.3.0==<br />
====Patch 1.3.0====<br />
* Added Dungeons<br />
* Reworked Gunplay<br />
* Bandits can wear body armour<br />
<br />
==Version 1.2.0==<br />
====Patch 1.2.3====<br />
* Added a Mod Picker to the main menu<br />
<br />
====Patch 1.2.0====<br />
* Adds Player Factions<br />
<br />
==Version 1.1.0==<br />
<br />
====Patch 1.1.6====<br />
* Adds Flags<br />
<br />
====Patch 1.1.4====<br />
* Adds Control Points<br />
* Adds Vehicle Storage - all vehicles that you use will be saved if near a base<br />
* Added Base Escapes<br />
* Bases are now renamable<br />
<br />
====Patch 1.1.2====<br />
* New bandit base<br />
* New cheats (/heal, /godmode, /nofuzz, /specialbuild<br />
* Added Hit Confirmation<br />
<br />
====Patch 1.1.0====<br />
* Goons Can Follow You and be issued orders - Follow you, Guard Position, Advance to Map Marker or Return to Base<br />
* AI factions can now build cities<br />
* New Game Mode: Strat Zero<br />
* Goons Wear Colours<br />
* Human players can launch base attacks<br />
* Major Economy Rebalance<br />
* Peace Deal Rework - new peace options + warscore system. UI gives breakdown if the AI will accpet/reject an offer and why<br />
* Vehicles, friendly goons and the CDF appear on the minimap<br />
* Damaged parts of the city will rebuild over time<br />
* Faction Information Breakdown - see the base limits, cash flow and base attack limits of other factions from the diplomacy screen<br />
* Repairing lots no longer wipes chests<br />
* Killing a bandit/base defender will suppress respawns<br />
* More shop icons on the map<br />
<br />
==Version 1.0.0==<br />
====Patch 1.0.28====<br />
* Waypoints appear in the world<br />
* New bandit base (the Bandit Factory)<br />
* Improved mouse code (hardware mouse instead of software mouse, more responsive)<br />
* Added [[Strategic Pause|Strategic Pausing]]<br />
<br />
====Patch 1.0.26====<br />
* Added Boats<br />
* Added Hovercrafts. Hovercrafts can boost by holding sprint or hover by holding jump<br />
* Added Marinas<br />
* Added Hovercraft Shops<br />
* Added canals<br />
<br />
====Patch 1.0.23====<br />
* Improved AI Patchfinding<br />
* Added Headshots<br />
<br />
====Patch 1.0.19====<br />
* Blocks crumble when destroyed<br />
<br />
====Patch 1.0.18====<br />
* Bases can be placed directly from the fortifications menu<br />
<br />
====Patch 1.0.14====<br />
* Massive FPS boost due to cpu/gpu binding opimisations. Can result in up to 3x improvement in frame rate<br />
<br />
====Patch 1.0.11====<br />
* Removing blocks returns the item to your inventory<br />
<br />
====Patch 1.0.0====<br />
* Initial Release</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Template:Version&diff=830Template:Version2019-09-24T07:56:28Z<p>SnapperTheTwig: </p>
<hr />
<div><div class="vtbox rightbar" style="font-size:80%;"><br />
{{#Switch: "{{{1}}}"<br />
| "Timeless" = This article is [[:Category:Persistent Articles|persistant]] and should be accurate for any version of the game.<br />
| "1.6.0" = This article is [[Project:Versioning|up to date]] for the current version ({{{1}}}) of the game.<includeonly>[[Category:Up To Date Articles]]</includeonly><br /><br />
| #Default = This article may be out of date. It was last updated for [[Project:Versioning|{{{1|an unknown version}}}]].<includeonly>[[Category:Potentially Outdated Articles]]</includeonly><br />
}}<br />
</div></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Command_Line_Switches&diff=829Command Line Switches2019-09-24T07:56:09Z<p>SnapperTheTwig: Update to 1.6.0</p>
<hr />
<div>{{version|1.6.0}}<br />
<br />
==Using Command Line Switches In Steam==<br />
[[file:LaunchOptions.jpg|thumb]]<br />
* First open Steam, then right click Voxel Turf<br />
* Then click "launch options". There you can add or edit launch options<br />
<br />
These launch options will apply to the client (vtclient). For example:<br />
{{file|--borderless}} will run the client in borderless windowed mode.<br />
<br />
If you want to apply server options you have to use {{file|--S}}, every argument past that will be passed to the server. For example:<br />
{{file|--S --timeout 20000 --g 7}} will mean that any servers started by the client will have the arguments {{file|--timeout 2000 --g 7}} passed to them.<br />
<br />
==Client (vtclient)==<br />
Below is the output of {{file|vtclient --help}}<br />
<br />
<source><br />
TURF Client: Version 1.6.0-RC2.<br />
(C) 2012 Liam Twigger <br />
OMP Num Threads: 4<br />
Client Init Clock: 0<br />
Usage: client <server_address><br />
<br />
Command Line Switches: (all case sensitive)<br />
--fs Enables/forces fullscreen.<br />
--windowed Enables/forces windowed mode.<br />
--borderless Enables/forces borderless windowed mode.<br />
--width WIDTH Sets the width of the window to WIDTH.<br />
--height HEIGHT Sets the width of the window to HEIGHT.<br />
--physics STATE STATE is either ON, OFF or AUTO (case sensitive). This sets whether physics is simulated. If your playing this<br />
game over LAN or singleplayer (<server> = localhost), this is recommended to be off to prevent redundant<br />
calculations wasting CPU. The default is OFF.<br />
--gameDir DIR Sets the directory where files are loaded from<br />
--debugDraw STATE STATE is either ON or OFF. Physics must be on for this to have effect. This draws the physics meshes.<br />
--mtlighting STATE STATE is either ON or OFF. Use multithreaded chunk lighting algorithim.<br />
--mtrendering STATE STATE is either ON or OFF. Use multithreaded chunk graphics mesh generation algorithim.<br />
--help Displays this message.<br />
--fm Free Memory: Tells the program to deallocate memory on exit (as opposed to just closing and letting the OS<br />
do it). The reason why the game does not deallocate memory on shutdown be default is to prevent the game from<br />
loading things from swap to deallocate them, which leads to a long shutdown.<br />
--profiler Spits out how long it takes to generate a chunk's VBO, lighting recalculations and chunk physics mesh regeneration.<br />
--sleep MSEC Sets how many milliseconds the game will sleep for between frames. This is a smart sleep, so that if the game<br />
takes DeltaT milliseconds to render a frame, the game will sleep for (MSEC - DeltaT) milliseconds for smooth<br />
operation. This command is useful for preventing the game from hogging all the CPU.<br />
--renderItems ID Starts the program, spits out ui BMPs for item ID, then closes. Use ALL to render all items<br />
--sunlightMode STATE STATE is either NORMAL, MIDDAY, MIDNIGHT, DAWN or DUSK. Renders daylight as if its stuck at this time.<br />
--v Verbose output - for debuging.<br />
--echoBlockPlacement Whenever a block is set, a message will appear in the in-game console.<br />
--echoItemIds An items id will be displayed when seleceted as well as its name.<br />
--strictLua STATE STATE is either ON or OFF. If ON, abort if there is an error loading Lua scripts. Useful for debugging Lua scripts.<br />
Default state is ON.<br />
--login USER PASS Logs in on start up with specified username and password<br />
--demo Run in demo mode<br />
--lan Run in Local LAN mode. This will only allow you to join local MP servers and will provide you with a generic profile<br />
--vr Enable VR mode. This is VERY experimental<br />
--noGpuNuke Use this to stop the game unloading all GPU memory when it thinks its full<br />
--timeout TIMEOUT Sets the connection timeout in ms (Default 12000)<br />
--pixmapFont STATE STATE is either ON or OFF. Uses pixmap fonts instead of texture fonts.<br />
--lagSpike TIME If a frame takes longer than TIME ms to render, spit out profiling information to console. Default: 10000ms.<br />
--port ID Sets the outgoing port that the game tries to use first. If this port is not avaliable it will revert to default behaviour<br />
--exportChunksToObj Rendered chunks will be generated as .obj files in the cache directory<br />
--S (args) Everything after --S is passed directly as arguments to any servers started by this client.<br />
<br />
<br />
Press <return> to continue<br />
</source><br />
<br />
==Server (vtserver)==<br />
Below is the output of {{file|vtserver --help}}<br />
<br />
<source><br />
TURF Server: Version 1.6.0-RC2.<br />
(C) 2012 Liam Twigger <br />
--help<br />
Usage: vtserver<br />
<br />
Command Line Switches: (all case sensitive)<br />
--help Displays this message.<br />
--port PORT Uses PORT as the port<br />
--game ID Sets the game id (default: 0)<br />
--g ID Alias of --game<br />
--gameDir DIR Sets the directory where files are loaded from<br />
--v Verbose output - for debuging.<br />
--strictLua STATE STATE is either ON or OFF. If ON, abort if there is an error loading Lua scripts. Useful for debugging Lua scripts.<br />
Default state is ON.<br />
--profiler Profiling information.<br />
--outputToFile Redirects program output (stdout) to file serverlog.txt<br />
--latchToClient LATCH Do not use this. This is an argument when running the server from within the client, to the server this.<br />
--serverName NAME Name of the server, eg "Robbo's Turf Server"<br />
--saveGame FILENAME Name of the save game. Will be stored in savegames folder<br />
--publicGame STATE If set to ON, this server will be listed publicly online. Default is OFF.<br />
--dedicated STATE If set to ON, this server will be persistant if the host disconnects. Default is ON.<br />
--maxPlayers NUMBER Maximum number of players.<br />
--gameMode MODE The game mode, eg Build, Trash, Turf.<br />
--gameModeVars { ARGS } Various settings for the game. Format is { gm1, value ; gm2, value1, value2 ; etc }. There must be spaces around the<br />
starting and finishing braces.<br />
--timeout TIMEOUT Sets the connection timeout in ms (Default 12000)<br />
--genmap XSIZE YSIZE If starting a new game, generates a new XSIZE*ZSIZE map. XSIZE and ZSIZE will be rounded to multiple of 128.<br />
--mapGenIsland VAL VAL is either ON or OFF. If true then a generated map will be an island.<br />
--mapGenSeaMod VAL VAL is a number. Use this number to make more or less water on the map. Higher number = more water. Values can be negative. Default: 0<br />
--mapGenHillsMod VAL VAL is a number. Use this number to make more or less hills on the map. Lower number = more hills. Values can be negative. Default: 0<br />
--loadmap FILENAME If starting a new game, loads the map from a file in the maps/ directory<br />
--flatmap If generating a new map, make it flat<br />
--newGame STATE STATE is either ON or OFF. Set to ON to enable<br />
--randomSeed SEED If generating a new map, use this seed. SEED can either be a number, or a string<br />
--simulationPeriod T T is the time delay between simulation frames in ms. Simulation frequency = 1000/T Hz.<br />
Default: 60ms<br />
--trustClient STATE Trust clients' positions. STATE is ON by default, can be set to OFF for strict server authority<br />
--singlePlayer PID Puts the server into Singleplayer mode. It will only accept the player with id PID<br />
--lagSpike TIME If a loop takes longer than TIME ms to execute, spit out profiling information to all players. Default: 2500ms.<br />
--difficulty VAL 0 = Hard, 1 = Medium, 2 = Easy. Default: 1.<br />
--customSkinTransfers STATE STATE is either ON or OFF. Set to OFF to disable<br />
--wsi PATH Adds a steam workshop item to the path of mods to load<br />
--computePanicThresh NUM Tells the server to stop spawning entities and doing complex AI stuff if its taking longer than this to do a simulation loop<br />
--lan Runs the server in local Lan mode<br />
--loadBitmapMap Loads a bitmap (.bmp) file to use for map generation. Red = height<br />
--biome BIOME Sets the biome for the map. Values are TEMPERATE, DESERT, MESA, SNOW<br />
<br />
On linux you can safely shutdown the server with SIGHUP (killall -s HUP vtserver). This will tell the server to save and shutdown orderly<br />
</source></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Turf_2_Design/Suggestions&diff=828Turf 2 Design/Suggestions2019-08-10T15:08:55Z<p>SnapperTheTwig: </p>
<hr />
<div>=Guidelines For This Page=<br />
The purpose of this page is to document the developer's thoughts as what Turf 2 should be. Head to the [[{{TALKPAGENAME}}|talk page]] to propose an addition.<br />
<br />
=Base Engine=<br />
* Multiple cities, an entire world to explore<br />
* "Block" based buildings, height-map terrain. Underground layer.<br />
* World divided into tiles, which may be cities, may be vacant, may be wilderness (mountain ranges, deep forests, etc). Tiles are to be irregular in shape<br />
* Cities are to be divided into irregular tiles too. Placing a base in a tile gives building/racketerring/owning permissions for all buildings in or intersecting a tile<br />
* Roads can be placed freeform and lot slots radiate from it (like most modern city builders)<br />
<br />
==Modability==<br />
The VT lotpack system should be expanded to everything<br />
* All assets (textures, blocks, vehicles, missions) should be tag indexed (eg "VANILLA.CONCRETE_BLOCK") and defined by plaintext JSON files.<br />
* Mod assests should have fallbacks required in case a player wants to join a server with a mod installed but does not have said mod.<br />
* In-game mod editor (basically a ui for editing a .json)<br />
* These changes should make modding and adding new assets trivially easy (won't break ids/maps/etc)<br />
<br />
== Performance Goals==<br />
* Multithreaded chunk/terrain renderer (VT uses 1 separate thread, T2 should use as many threads as possible)<br />
* Multithreaded physics, ideally 1 thread/player. Hopefully multithreaded raycasting too.<br />
* Draw distance to the horizon<br />
<br />
==Artistic Goals==<br />
* PBR rending, screenspace reflections, automatic tonemapping<br />
* TODO: Consistent art style for people/terrain<br />
<br />
=Economy=<br />
The game should have 2 economic models: Simple (same as Turf 1 - build buildings, collect money) and Advanced (resource flow, GDP simulation, etc). The rest of this section refers to the Advanced mode<br />
<br />
==Resources==<br />
''See Also: [[Turf 2 Supply Chain Ideas]]''<br />
* Most buildings should create or consume some kind of resource<br />
* Players can either collect the resource and stockpile them (requiring warehouses top store them), or sell them on the open market. Other players can raid these to steal goods.<br />
* Players can spend the resource stockpiles to build buildings, or on upkeep on various things<br />
* Cities can specialise in resources, giving a production bonus<br />
* Resources are traded between cities, via roads/road and sea routes. Players can steal from freight vehicles.<br />
* The should be very big (major) industrial buildings that act as a main industry for a city.<br />
<br />
==Finance==<br />
* (GDP) As factions draw income from buildings money is extracted from the economy, making the citizens poorer. Likewise players spending money will inject money into the economy<br />
** The effect of this is that idling in a city will cause the tax base to shrink and reduce income<br />
<br />
<br />
=Warfare=<br />
==Turf Wars==<br />
* Turf Wars should have some kind of casus belli system. Some kind of limited war should be available early game to fight over a single base. Late game you should be able to annex factions entirely to remove them from the city.<br />
* Rather than base attacks players/factions should be able to order squads around on the map. Squads are units of ~5 goons.<br />
* Different unit types, from street goons at the low end, to professional soldiers and armoured units at the high end. Recruiting and maintaining more advanced units will require a supply/resource chain<br />
* Players give a morale/combat bonus to nearby units, encouraging the player to be present in battle<br />
* Units can be placed under the control of AI generals to auto balance front lines and take weakly or unopposed positions</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Turf_2_Supply_Chain_Ideas&diff=827Turf 2 Supply Chain Ideas2019-08-10T14:46:00Z<p>SnapperTheTwig: </p>
<hr />
<div>Ideas for supply chain should go here. If you would like to suggest a resource/chain<br />
<br />
For some recipes all components are compulsory, for others<br />
<br />
=Primary Resources=<br />
Primary resources are produced continuously and endlessly from a relevant building based on natural deposits. Perhaps they should be boostable with suitable consumables (such as explosives)<br />
* Iron Ore<br />
* Gravel/Sand/Clay (should these be separate?)<br />
* Oil<br />
* Coal<br />
* Natural Gas<br />
* Uranium<br />
<br />
=Generated Resources=<br />
Require no inputs apart from electricity or water<br />
* Hydrogen (via electrolysis)<br />
<br />
=Agricultural Resources=<br />
Agricultural Resources are grown. They could be generated by themselves, or have their yields increased by having access to something like fertilizer<br />
* Lumber<br />
* Grain<br />
* Spices (Tropical)<br />
* Rubber (Tropical)<br />
<br />
=Building Materials=<br />
Resource requirements for buildings should be some of these <br />
* Bricks ( Clay -> Bricks)<br />
* Concrete ( Sand + Lime -> Concrete )<br />
* Steel ( Iron Ore + Coal -> Steel )<br />
* Wood ( Lumber -> Wood )<br />
* Building Supplies (Bricks / Concrete / Wood / Steel -> Building Supplies) -- Should there be a generic "building supplies" resource?<br />
<br />
=Consumables=<br />
==Residential/Office/Civilian==<br />
* Foods (Grain -> Food)<br />
* Paper (Lumber -> Paper)<br />
<br />
==Industrial/Military==<br />
* Small Arms ( Steel -> Weapons ) -- Should be augmentable with increasingly rare resources to make better tier weapons<br />
* Natural Gas ( Hydrogen + CO2 -> Natural Gas via Sabatier process )<br />
* Ammonia ( Natural Gas -> Ammonia )<br />
* Fertilizer (Ammonia -> Fertilizer)<br />
* Explosives (Fertilizer -> Explosives)<br />
* Munitions ( Steel + Explosives -> Munitions )<br />
* Military Supplies ( Munitions + Small Arms + Long Life Food + Medical Supplies ) -> Military Supplies<br />
<br />
=Waste=<br />
Waste resources are sometimes required to be removed in order to maintain <br />
* CO2 (is normally vented)<br />
* Garbage</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Turf_2_Supply_Chain_Ideas&diff=826Turf 2 Supply Chain Ideas2019-08-10T14:44:57Z<p>SnapperTheTwig: </p>
<hr />
<div>Ideas for supply chain should go here. If you would like to suggest a resource/chain<br />
<br />
For some recipes all components are compulsory, for others<br />
<br />
=Primary Resources=<br />
Primary resources are produced continuously and endlessly from a relevant building based on natural deposits. Perhaps they should be boostable with suitable consumables (such as explosives)<br />
* Iron Ore<br />
* Gravel/Sand/Clay (should these be separate?)<br />
* Oil<br />
* Coal<br />
* Natural Gas<br />
* Uranium<br />
* Hydrogen (via electrolysis)<br />
<br />
=Agricultural Resources<br />
Agricultural Resources are grown. They could be generated by themselves, or have their yields increased by having access to something like fertilizer<br />
* Lumber<br />
* Grain<br />
* Spices (Tropical)<br />
* Rubber (Tropical)<br />
<br />
=Building Materials=<br />
Resource requirements for buildings should be some of these <br />
* Bricks ( Clay -> Bricks)<br />
* Concrete ( Sand + Lime -> Concrete )<br />
* Steel ( Iron Ore + Coal -> Steel )<br />
* Wood ( Lumber -> Wood )<br />
* Building Supplies (Bricks / Concrete / Wood / Steel -> Building Supplies) -- Should there be a generic "building supplies" resource?<br />
<br />
=Consumables=<br />
==Residential/Office/Civilian==<br />
* Foods (Grain -> Food)<br />
* Paper (Lumber -> Paper)<br />
<br />
==Industrial/Military==<br />
* Small Arms ( Steel -> Weapons ) -- Should be augmentable with increasingly rare resources to make better tier weapons<br />
* Natural Gas ( Hydrogen + CO2 -> Natural Gas via Sabatier process )<br />
* Ammonia ( Natural Gas -> Ammonia )<br />
* Fertilizer (Ammonia -> Fertilizer)<br />
* Explosives (Fertilizer -> Explosives)<br />
* Munitions ( Steel + Explosives -> Munitions )<br />
* Military Supplies ( Munitions + Small Arms + Long Life Food + Medical Supplies ) -> Military Supplies<br />
<br />
=Waste=<br />
Waste resources are sometimes required to be removed in order to maintain <br />
* CO2 (is normally vented)<br />
* Garbage</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Main_Page&diff=825Main Page2019-08-10T13:28:40Z<p>SnapperTheTwig: /* Turf 2 Stuff */</p>
<hr />
<div>[[File:logo.jpg|center|link=Main Page]]<br />
__NOTOC__<br />
<br />
'''Welcome''' to the '''Voxel Turf Wiki'''! [http://store.steampowered.com/app/404530 Voxel Turf] is a game that combines Action and Strategy with City Building.<br />
<br />
If you wish to contribute to this wiki check out the [[Project:Style|Style Guide]] first. There are many [[:Category:Stubs|Stub articles]] that need work!<br />
<br />
<div class="row"><div class="column50" style="height: 100%"><div class="vtbox margin1" style="height: 100%"><br />
== Reference ==<br />
[[Bandit Base|Bandit Base Raiding]]<br />
<br />
[[Control Points]]<br />
<br />
[[Weapons|Weapons and Combat]]<br />
<br />
[[Dungeons]]<br />
<br />
[[Vehicles]]<br />
<br />
[[Stats]]<br />
<br />
[[Perks]]<br />
<br />
[[Blocks|Blocks and Manual Construction]]<br />
<br />
[[Electronics|Electronics and Circuits]]<br />
<br />
[[Base|Bases]]<br />
<br />
[[Base#Defender Goons|Hired Goons]]<br />
<br />
[[City Building]]<br />
<br />
[[Reward Buildings]]<br />
<br />
[[Missions]]<br />
<br />
[[Factions]]<br />
<br />
[[Turf Wars]]<br />
<br />
[[Racketeering]]<br />
<br />
[[Custom Buildings]]<br />
<br />
[[Economy]]<br />
<br />
[[Insurance and Repair]]<br />
<br />
[[The CDF]]<br />
<br />
[[Strategic_Pause|Strategic Pausing]]<br />
<br />
[[Waypoints|Waypoints/Markers]]<br />
<br />
</div></div><br />
<div class="column50"><div class="vtbox margin1"><br />
== Game Info ==<br />
[[Version History]]<br />
<br />
[[ Modding Guide ]]<br />
<br />
[[ Running a Dedicated Server ]]<br />
<br />
[[Troubleshooting]]<br />
<br />
[[Port Forwarding]]<br />
<br />
[[ Command Line Switches | Launch Options/Command Line Switches ]]<br />
</div><div class="vtbox margin1"><br />
== Community ==<br />
[[ Public Servers ]]<br />
<br />
[[ Workshop Mods ]]<br />
<br />
[[ Youtubers/Streamers ]]<br />
<br />
[[ Discord ]]<br />
</div><br />
<div class="vtbox margin1"><br />
== Links ==<br />
[http://store.steampowered.com/app/404530 Voxel Turf on Steam ]<br />
<br />
[http://www.indiedb.com/games/voxel-turf Voxel Turf on IndieDb ]<br />
<br />
[https://discord.gg/UDV6qGj Official Discord ]<br />
<br />
[http://www.voxelturf.net Official Website ]<br />
<br />
[https://twitter.com/SnapperTheTwig Developer's Twitter]<br />
<br />
[https://www.youtube.com/user/snapperthetwig Developer's YouTube]<br />
</div><br />
<div class="vtbox margin1"><br />
== Turf 2 Stuff ==<br />
[[Turf 2 Design/Suggestions]]<br />
<br />
[[Turf 2 Supply Chain Ideas]]<br />
</div><br />
</div><br />
<div class="clear"></div><br />
<br />
<div class="vtbox margin1"><br />
<br />
==IndieDb Dev Diaries==<br />
IndieDB articles contain valuable information about the game. These may contain information and pictures that are yet to be moved here<br />
<br />
Dev Diary 1: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-1-economic-engine-part-1 Economic Engine I: Building Types, Supply and Demand ]<br />
<br />
Dev Diary 2: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-2-economic-engine-part-2 Economic Engine II: Modifiers, Desirability, Safety Rating, Repairing and Custom Buildings ]<br />
<br />
Dev Diary 3: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-3-weapons-part-1-small-arms-and-weapon-mods Weapons I: Small Arms and Weapon Mods ]<br />
<br />
Dev Diary 4: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-4-weapons-part-2-rockets-explosives-and-blast-resistance Weapons II: Rockets, Explosives and Blast Resistance ]<br />
<br />
Dev Diary 5: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-5-mechanisms-and-electronics Mechanisms, Circuits and Electronics ]<br />
<br />
Dev Diary 6: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-6-meet-the-law Dealing with the Law (CDF) ] (+[https://www.youtube.com/watch?v=dArgA4gTk0Q Youtube Video - Dealing with the CDF ])<br />
<br />
Dev Diary 7: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-7-urban-grand-strategy Urban Grand Strategy - Turf Wars and Diplomacy ] (+[https://www.youtube.com/watch?v=TOkzzSH0vSw Youtube Video - Urban Grand Strategy ])<br />
<br />
Dev Diary 8: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-8-protection-rackets-and-reputation-wide-vs-tall-play Reputation and Racketeering - Wide vs Tall ]<br />
<br />
Dev Diary 9: [http://www.indiedb.com/games/voxel-turf/news/watch-release-announcement-infinite-rockets-dev-diary-9-meet-the-bandits Meet the Bandits + Bandit Base Raiding &amp; Looting ] (+[https://www.youtube.com/watch?v=q5qsUZu-Vi4 Youtube Video - Fun with Infinite Rockets ])<br />
<br />
Dev Diary 10: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-10-missions-and-co-op Missions &amp; Co-Op ] (+[https://www.youtube.com/watch?v=oiza0Spxd5A Youtube Video - Racing Mission ])<br />
<br />
Dev Diary 11: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-11-player-bases-and-base-building Player Bases &amp; Base Building ]<br />
<br />
Dev Diary 12: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-12-stats-and-perks Stats and Perks ]<br />
<br />
Dev Diary 13: [http://www.indiedb.com/games/voxel-turf/news/2x-video-article-dev-diary-13-city-building-zoning-reward-buildings City Building, Zoning and Reward Buildings ] (+[https://www.youtube.com/watch?v=ffTSeiQTkCM Youtube Video - City Building Guide ]) (+[https://www.youtube.com/watch?v=8ZiuJ9hSmBo Youtube Video - Custom Buildings and Templates ])<br />
<br />
Dev Diary 14: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-14-boats-hovercrafts-patch Boats, Hovercrafts and Canals ]<br />
<br />
Dev Diary 15: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-15-new-bandit-base-car-shop-waypoint-system-moar New Bandit Base and Caryard + Waypoint System + Strategic Pausing ]<br />
<br />
Dev Diary 16: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-16-control-points-vehicle-storage-base-escapes-renamable-bases Control Points, Vehicle Storage, Base Escapes, Renameable Bases]<br />
<br />
Major Update 4: [https://www.indiedb.com/games/voxel-turf/news/major-update-version-120-multiplayer-faction-system-flags-map-gen Mulitplayer Faction System, Flags and Flag Creator, Map Generator Upgrades]<br />
<br />
Dev Diary 17: [https://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-17-gunplay-improvements-new-dungeon-system Gunplay Improvements + New Dungeon System]<br />
</div></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Main_Page&diff=824Main Page2019-08-10T13:28:27Z<p>SnapperTheTwig: /* Turf 2 Stuff */</p>
<hr />
<div>[[File:logo.jpg|center|link=Main Page]]<br />
__NOTOC__<br />
<br />
'''Welcome''' to the '''Voxel Turf Wiki'''! [http://store.steampowered.com/app/404530 Voxel Turf] is a game that combines Action and Strategy with City Building.<br />
<br />
If you wish to contribute to this wiki check out the [[Project:Style|Style Guide]] first. There are many [[:Category:Stubs|Stub articles]] that need work!<br />
<br />
<div class="row"><div class="column50" style="height: 100%"><div class="vtbox margin1" style="height: 100%"><br />
== Reference ==<br />
[[Bandit Base|Bandit Base Raiding]]<br />
<br />
[[Control Points]]<br />
<br />
[[Weapons|Weapons and Combat]]<br />
<br />
[[Dungeons]]<br />
<br />
[[Vehicles]]<br />
<br />
[[Stats]]<br />
<br />
[[Perks]]<br />
<br />
[[Blocks|Blocks and Manual Construction]]<br />
<br />
[[Electronics|Electronics and Circuits]]<br />
<br />
[[Base|Bases]]<br />
<br />
[[Base#Defender Goons|Hired Goons]]<br />
<br />
[[City Building]]<br />
<br />
[[Reward Buildings]]<br />
<br />
[[Missions]]<br />
<br />
[[Factions]]<br />
<br />
[[Turf Wars]]<br />
<br />
[[Racketeering]]<br />
<br />
[[Custom Buildings]]<br />
<br />
[[Economy]]<br />
<br />
[[Insurance and Repair]]<br />
<br />
[[The CDF]]<br />
<br />
[[Strategic_Pause|Strategic Pausing]]<br />
<br />
[[Waypoints|Waypoints/Markers]]<br />
<br />
</div></div><br />
<div class="column50"><div class="vtbox margin1"><br />
== Game Info ==<br />
[[Version History]]<br />
<br />
[[ Modding Guide ]]<br />
<br />
[[ Running a Dedicated Server ]]<br />
<br />
[[Troubleshooting]]<br />
<br />
[[Port Forwarding]]<br />
<br />
[[ Command Line Switches | Launch Options/Command Line Switches ]]<br />
</div><div class="vtbox margin1"><br />
== Community ==<br />
[[ Public Servers ]]<br />
<br />
[[ Workshop Mods ]]<br />
<br />
[[ Youtubers/Streamers ]]<br />
<br />
[[ Discord ]]<br />
</div><br />
<div class="vtbox margin1"><br />
== Links ==<br />
[http://store.steampowered.com/app/404530 Voxel Turf on Steam ]<br />
<br />
[http://www.indiedb.com/games/voxel-turf Voxel Turf on IndieDb ]<br />
<br />
[https://discord.gg/UDV6qGj Official Discord ]<br />
<br />
[http://www.voxelturf.net Official Website ]<br />
<br />
[https://twitter.com/SnapperTheTwig Developer's Twitter]<br />
<br />
[https://www.youtube.com/user/snapperthetwig Developer's YouTube]<br />
</div><br />
<div class="vtbox margin1"><br />
== Turf 2 Stuff ==<br />
[[Turf 2 Design/Suggestions]]<br />
<br />
[[Turf_2 Supply Chain Ideas]]<br />
</div><br />
</div><br />
<div class="clear"></div><br />
<br />
<div class="vtbox margin1"><br />
<br />
==IndieDb Dev Diaries==<br />
IndieDB articles contain valuable information about the game. These may contain information and pictures that are yet to be moved here<br />
<br />
Dev Diary 1: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-1-economic-engine-part-1 Economic Engine I: Building Types, Supply and Demand ]<br />
<br />
Dev Diary 2: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-2-economic-engine-part-2 Economic Engine II: Modifiers, Desirability, Safety Rating, Repairing and Custom Buildings ]<br />
<br />
Dev Diary 3: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-3-weapons-part-1-small-arms-and-weapon-mods Weapons I: Small Arms and Weapon Mods ]<br />
<br />
Dev Diary 4: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-4-weapons-part-2-rockets-explosives-and-blast-resistance Weapons II: Rockets, Explosives and Blast Resistance ]<br />
<br />
Dev Diary 5: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-5-mechanisms-and-electronics Mechanisms, Circuits and Electronics ]<br />
<br />
Dev Diary 6: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-6-meet-the-law Dealing with the Law (CDF) ] (+[https://www.youtube.com/watch?v=dArgA4gTk0Q Youtube Video - Dealing with the CDF ])<br />
<br />
Dev Diary 7: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-7-urban-grand-strategy Urban Grand Strategy - Turf Wars and Diplomacy ] (+[https://www.youtube.com/watch?v=TOkzzSH0vSw Youtube Video - Urban Grand Strategy ])<br />
<br />
Dev Diary 8: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-8-protection-rackets-and-reputation-wide-vs-tall-play Reputation and Racketeering - Wide vs Tall ]<br />
<br />
Dev Diary 9: [http://www.indiedb.com/games/voxel-turf/news/watch-release-announcement-infinite-rockets-dev-diary-9-meet-the-bandits Meet the Bandits + Bandit Base Raiding &amp; Looting ] (+[https://www.youtube.com/watch?v=q5qsUZu-Vi4 Youtube Video - Fun with Infinite Rockets ])<br />
<br />
Dev Diary 10: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-10-missions-and-co-op Missions &amp; Co-Op ] (+[https://www.youtube.com/watch?v=oiza0Spxd5A Youtube Video - Racing Mission ])<br />
<br />
Dev Diary 11: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-11-player-bases-and-base-building Player Bases &amp; Base Building ]<br />
<br />
Dev Diary 12: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-12-stats-and-perks Stats and Perks ]<br />
<br />
Dev Diary 13: [http://www.indiedb.com/games/voxel-turf/news/2x-video-article-dev-diary-13-city-building-zoning-reward-buildings City Building, Zoning and Reward Buildings ] (+[https://www.youtube.com/watch?v=ffTSeiQTkCM Youtube Video - City Building Guide ]) (+[https://www.youtube.com/watch?v=8ZiuJ9hSmBo Youtube Video - Custom Buildings and Templates ])<br />
<br />
Dev Diary 14: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-14-boats-hovercrafts-patch Boats, Hovercrafts and Canals ]<br />
<br />
Dev Diary 15: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-15-new-bandit-base-car-shop-waypoint-system-moar New Bandit Base and Caryard + Waypoint System + Strategic Pausing ]<br />
<br />
Dev Diary 16: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-16-control-points-vehicle-storage-base-escapes-renamable-bases Control Points, Vehicle Storage, Base Escapes, Renameable Bases]<br />
<br />
Major Update 4: [https://www.indiedb.com/games/voxel-turf/news/major-update-version-120-multiplayer-faction-system-flags-map-gen Mulitplayer Faction System, Flags and Flag Creator, Map Generator Upgrades]<br />
<br />
Dev Diary 17: [https://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-17-gunplay-improvements-new-dungeon-system Gunplay Improvements + New Dungeon System]<br />
</div></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Main_Page&diff=823Main Page2019-08-10T13:28:14Z<p>SnapperTheTwig: /* Turf 2 Stuff */</p>
<hr />
<div>[[File:logo.jpg|center|link=Main Page]]<br />
__NOTOC__<br />
<br />
'''Welcome''' to the '''Voxel Turf Wiki'''! [http://store.steampowered.com/app/404530 Voxel Turf] is a game that combines Action and Strategy with City Building.<br />
<br />
If you wish to contribute to this wiki check out the [[Project:Style|Style Guide]] first. There are many [[:Category:Stubs|Stub articles]] that need work!<br />
<br />
<div class="row"><div class="column50" style="height: 100%"><div class="vtbox margin1" style="height: 100%"><br />
== Reference ==<br />
[[Bandit Base|Bandit Base Raiding]]<br />
<br />
[[Control Points]]<br />
<br />
[[Weapons|Weapons and Combat]]<br />
<br />
[[Dungeons]]<br />
<br />
[[Vehicles]]<br />
<br />
[[Stats]]<br />
<br />
[[Perks]]<br />
<br />
[[Blocks|Blocks and Manual Construction]]<br />
<br />
[[Electronics|Electronics and Circuits]]<br />
<br />
[[Base|Bases]]<br />
<br />
[[Base#Defender Goons|Hired Goons]]<br />
<br />
[[City Building]]<br />
<br />
[[Reward Buildings]]<br />
<br />
[[Missions]]<br />
<br />
[[Factions]]<br />
<br />
[[Turf Wars]]<br />
<br />
[[Racketeering]]<br />
<br />
[[Custom Buildings]]<br />
<br />
[[Economy]]<br />
<br />
[[Insurance and Repair]]<br />
<br />
[[The CDF]]<br />
<br />
[[Strategic_Pause|Strategic Pausing]]<br />
<br />
[[Waypoints|Waypoints/Markers]]<br />
<br />
</div></div><br />
<div class="column50"><div class="vtbox margin1"><br />
== Game Info ==<br />
[[Version History]]<br />
<br />
[[ Modding Guide ]]<br />
<br />
[[ Running a Dedicated Server ]]<br />
<br />
[[Troubleshooting]]<br />
<br />
[[Port Forwarding]]<br />
<br />
[[ Command Line Switches | Launch Options/Command Line Switches ]]<br />
</div><div class="vtbox margin1"><br />
== Community ==<br />
[[ Public Servers ]]<br />
<br />
[[ Workshop Mods ]]<br />
<br />
[[ Youtubers/Streamers ]]<br />
<br />
[[ Discord ]]<br />
</div><br />
<div class="vtbox margin1"><br />
== Links ==<br />
[http://store.steampowered.com/app/404530 Voxel Turf on Steam ]<br />
<br />
[http://www.indiedb.com/games/voxel-turf Voxel Turf on IndieDb ]<br />
<br />
[https://discord.gg/UDV6qGj Official Discord ]<br />
<br />
[http://www.voxelturf.net Official Website ]<br />
<br />
[https://twitter.com/SnapperTheTwig Developer's Twitter]<br />
<br />
[https://www.youtube.com/user/snapperthetwig Developer's YouTube]<br />
</div><br />
<div class="vtbox margin1"><br />
== Turf 2 Stuff ==<br />
[[Turf 2 Design/Suggestions]]<br />
[[Turf_2 Supply Chain Ideas]]<br />
</div><br />
</div><br />
<div class="clear"></div><br />
<br />
<div class="vtbox margin1"><br />
<br />
==IndieDb Dev Diaries==<br />
IndieDB articles contain valuable information about the game. These may contain information and pictures that are yet to be moved here<br />
<br />
Dev Diary 1: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-1-economic-engine-part-1 Economic Engine I: Building Types, Supply and Demand ]<br />
<br />
Dev Diary 2: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-2-economic-engine-part-2 Economic Engine II: Modifiers, Desirability, Safety Rating, Repairing and Custom Buildings ]<br />
<br />
Dev Diary 3: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-3-weapons-part-1-small-arms-and-weapon-mods Weapons I: Small Arms and Weapon Mods ]<br />
<br />
Dev Diary 4: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-4-weapons-part-2-rockets-explosives-and-blast-resistance Weapons II: Rockets, Explosives and Blast Resistance ]<br />
<br />
Dev Diary 5: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-5-mechanisms-and-electronics Mechanisms, Circuits and Electronics ]<br />
<br />
Dev Diary 6: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-6-meet-the-law Dealing with the Law (CDF) ] (+[https://www.youtube.com/watch?v=dArgA4gTk0Q Youtube Video - Dealing with the CDF ])<br />
<br />
Dev Diary 7: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-7-urban-grand-strategy Urban Grand Strategy - Turf Wars and Diplomacy ] (+[https://www.youtube.com/watch?v=TOkzzSH0vSw Youtube Video - Urban Grand Strategy ])<br />
<br />
Dev Diary 8: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-8-protection-rackets-and-reputation-wide-vs-tall-play Reputation and Racketeering - Wide vs Tall ]<br />
<br />
Dev Diary 9: [http://www.indiedb.com/games/voxel-turf/news/watch-release-announcement-infinite-rockets-dev-diary-9-meet-the-bandits Meet the Bandits + Bandit Base Raiding &amp; Looting ] (+[https://www.youtube.com/watch?v=q5qsUZu-Vi4 Youtube Video - Fun with Infinite Rockets ])<br />
<br />
Dev Diary 10: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-10-missions-and-co-op Missions &amp; Co-Op ] (+[https://www.youtube.com/watch?v=oiza0Spxd5A Youtube Video - Racing Mission ])<br />
<br />
Dev Diary 11: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-11-player-bases-and-base-building Player Bases &amp; Base Building ]<br />
<br />
Dev Diary 12: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-12-stats-and-perks Stats and Perks ]<br />
<br />
Dev Diary 13: [http://www.indiedb.com/games/voxel-turf/news/2x-video-article-dev-diary-13-city-building-zoning-reward-buildings City Building, Zoning and Reward Buildings ] (+[https://www.youtube.com/watch?v=ffTSeiQTkCM Youtube Video - City Building Guide ]) (+[https://www.youtube.com/watch?v=8ZiuJ9hSmBo Youtube Video - Custom Buildings and Templates ])<br />
<br />
Dev Diary 14: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-14-boats-hovercrafts-patch Boats, Hovercrafts and Canals ]<br />
<br />
Dev Diary 15: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-15-new-bandit-base-car-shop-waypoint-system-moar New Bandit Base and Caryard + Waypoint System + Strategic Pausing ]<br />
<br />
Dev Diary 16: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-16-control-points-vehicle-storage-base-escapes-renamable-bases Control Points, Vehicle Storage, Base Escapes, Renameable Bases]<br />
<br />
Major Update 4: [https://www.indiedb.com/games/voxel-turf/news/major-update-version-120-multiplayer-faction-system-flags-map-gen Mulitplayer Faction System, Flags and Flag Creator, Map Generator Upgrades]<br />
<br />
Dev Diary 17: [https://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-17-gunplay-improvements-new-dungeon-system Gunplay Improvements + New Dungeon System]<br />
</div></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Turf_2_Supply_Chain_Ideas&diff=822Turf 2 Supply Chain Ideas2019-08-10T13:27:44Z<p>SnapperTheTwig: Initial Edit</p>
<hr />
<div>TBD</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Turf_2_Design/Suggestions&diff=821Turf 2 Design/Suggestions2019-07-22T12:23:08Z<p>SnapperTheTwig: </p>
<hr />
<div>=Guidelines For This Page=<br />
The purpose of this page is to document the developer's thoughts as what Turf 2 should be. Head to the [[{{TALKPAGENAME}}|talk page]] to propose an addition.<br />
<br />
=Base Engine=<br />
* Multiple cities, an entire world to explore<br />
* "Block" based buildings, height-map terrain. Underground layer.<br />
* World divided into tiles, which may be cities, may be vacant, may be wilderness (mountain ranges, deep forests, etc). Tiles are to be irregular in shape<br />
* Cities are to be divided into irregular tiles too. Placing a base in a tile gives building/racketerring/owning permissions for all buildings in or intersecting a tile<br />
* Roads can be placed freeform and lot slots radiate from it (like most modern city builders)<br />
<br />
==Modability==<br />
The VT lotpack system should be expanded to everything<br />
* All assets (textures, blocks, vehicles, missions) should be tag indexed (eg "VANILLA.CONCRETE_BLOCK") and defined by plaintext JSON files.<br />
* Mod assests should have fallbacks required in case a player wants to join a server with a mod installed but does not have said mod.<br />
* In-game mod editor (basically a ui for editing a .json)<br />
* These changes should make modding and adding new assets trivially easy (won't break ids/maps/etc)<br />
<br />
== Performance Goals==<br />
* Multithreaded chunk/terrain renderer (VT uses 1 separate thread, T2 should use as many threads as possible)<br />
* Multithreaded physics, ideally 1 thread/player. Hopefully multithreaded raycasting too.<br />
* Draw distance to the horizon<br />
<br />
==Artistic Goals==<br />
* PBR rending, screenspace reflections, automatic tonemapping<br />
* TODO: Consistent art style for people/terrain<br />
<br />
=Economy=<br />
The game should have 2 economic models: Simple (same as Turf 1 - build buildings, collect money) and Advanced (resource flow, GDP simulation, etc). The rest of this section refers to the Advanced mode<br />
<br />
==Resources==<br />
* Most buildings should create or consume some kind of resource<br />
* Players can either collect the resource and stockpile them (requiring warehouses top store them), or sell them on the open market. Other players can raid these to steal goods.<br />
* Players can spend the resource stockpiles to build buildings, or on upkeep on various things<br />
* Cities can specialise in resources, giving a production bonus<br />
* Resources are traded between cities, via roads/road and sea routes. Players can steal from freight vehicles.<br />
* The should be very big (major) industrial buildings that act as a main industry for a city.<br />
<br />
==Finance==<br />
* (GDP) As factions draw income from buildings money is extracted from the economy, making the citizens poorer. Likewise players spending money will inject money into the economy<br />
** The effect of this is that idling in a city will cause the tax base to shrink and reduce income<br />
<br />
<br />
=Warfare=<br />
==Turf Wars==<br />
* Turf Wars should have some kind of casus belli system. Some kind of limited war should be available early game to fight over a single base. Late game you should be able to annex factions entirely to remove them from the city.<br />
* Rather than base attacks players/factions should be able to order squads around on the map. Squads are units of ~5 goons.<br />
* Different unit types, from street goons at the low end, to professional soldiers and armoured units at the high end. Recruiting and maintaining more advanced units will require a supply/resource chain<br />
* Players give a morale/combat bonus to nearby units, encouraging the player to be present in battle<br />
* Units can be placed under the control of AI generals to auto balance front lines and take weakly or unopposed positions</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Turf_2_Design/Suggestions&diff=810Turf 2 Design/Suggestions2019-05-04T02:45:05Z<p>SnapperTheTwig: Initial Edit</p>
<hr />
<div>=Guidelines For This Page=<br />
The purpose of this page is to document the developer's thoughts as what Turf 2 should be. Head to the [[{{TALKPAGENAME}}|talk page]] to propose an addition.<br />
<br />
=Base Engine=<br />
* Multiple cities, an entire world to explore<br />
* "Block" based buildings, height-map terrain. Underground layer.<br />
* World divided into tiles, which may be cities, may be vacant, may be wilderness (mountain ranges, deep forests, etc). Tiles are to be irregular in shape<br />
* Cities are to be divided into irregular tiles too. Placing a base in a tile gives building/racketerring/owning permissions for all buildings in or intersecting a tile<br />
* Roads can be placed freeform and lot slots radiate from it (like most modern city builders)<br />
<br />
==Modability==<br />
The VT lotpack system should be expanded to everything<br />
* All assets (textures, blocks, vehicles, missions) should be tag indexed (eg "VANILLA.CONCRETE_BLOCK") and defined by plaintext JSON files.<br />
* Mod assests should have fallbacks required in case a player wants to join a server with a mod installed but does not have said mod.<br />
* In-game mod editor (basically a ui for editing a .json)<br />
* These changes should make modding and adding new assets trivially easy (won't break ids/maps/etc)<br />
<br />
== Performance Goals==<br />
* Multithreaded chunk/terrain renderer (VT uses 1 separate thread, T2 should use as many threads as possible)<br />
* Multithreaded physics, ideally 1 thread/player. Hopefully multithreaded raycasting too.<br />
* Draw distance to the horizon<br />
<br />
==Artistic Goals==<br />
* PBR rending, screenspace reflections, automatic tonemapping<br />
* TODO: Consistent art style for people/terrain<br />
<br />
=Economy=<br />
The game should have 2 economic models: Simple (same as Turf 1 - build buildings, collect money) and Advanced (resource flow, GDP simulation, etc). The rest of this section refers to the Advanced mode<br />
<br />
==Resources==<br />
* Most buildings should create or consume some kind of resource<br />
* Players can either collect the resource and stockpile them (requiring warehouses top store them), or sell them on the open market. Other players can raid these to steal goods.<br />
* Players can spend the resource stockpiles to build buildings, or on upkeep on various things<br />
* Cities can specialise in resources, giving a production bonus<br />
* Resources are traded between cities, via roads/road and sea routes. Players can steal from freight vehicles.<br />
* The should be very big (major) industrial buildings that act as a main industry for a city.<br />
<br />
==Finance==<br />
* (GDP) As factions draw income from buildings money is extracted from the economy, making the citizens poorer. Likewise players spending money will inject money into the economy<br />
** The effect of this is that idling in a city will cause the tax base to shrink and reduce income</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Main_Page&diff=809Main Page2019-05-04T00:25:05Z<p>SnapperTheTwig: </p>
<hr />
<div>[[File:logo.jpg|center|link=Main Page]]<br />
__NOTOC__<br />
<br />
'''Welcome''' to the '''Voxel Turf Wiki'''! [http://store.steampowered.com/app/404530 Voxel Turf] is a game that combines Action and Strategy with City Building.<br />
<br />
If you wish to contribute to this wiki check out the [[Project:Style|Style Guide]] first. There are many [[:Category:Stubs|Stub articles]] that need work!<br />
<br />
<div class="row"><div class="column50" style="height: 100%"><div class="vtbox margin1" style="height: 100%"><br />
== Reference ==<br />
[[Bandit Base|Bandit Base Raiding]]<br />
<br />
[[Control Points]]<br />
<br />
[[Weapons|Weapons and Combat]]<br />
<br />
[[Dungeons]]<br />
<br />
[[Vehicles]]<br />
<br />
[[Stats]]<br />
<br />
[[Perks]]<br />
<br />
[[Blocks|Blocks and Manual Construction]]<br />
<br />
[[Electronics|Electronics and Circuits]]<br />
<br />
[[Base|Bases]]<br />
<br />
[[Base#Defender Goons|Hired Goons]]<br />
<br />
[[City Building]]<br />
<br />
[[Reward Buildings]]<br />
<br />
[[Missions]]<br />
<br />
[[Factions]]<br />
<br />
[[Turf Wars]]<br />
<br />
[[Racketeering]]<br />
<br />
[[Custom Buildings]]<br />
<br />
[[Economy]]<br />
<br />
[[Insurance and Repair]]<br />
<br />
[[The CDF]]<br />
<br />
[[Strategic_Pause|Strategic Pausing]]<br />
<br />
[[Waypoints|Waypoints/Markers]]<br />
<br />
</div></div><br />
<div class="column50"><div class="vtbox margin1"><br />
== Game Info ==<br />
[[Version History]]<br />
<br />
[[ Modding Guide ]]<br />
<br />
[[ Running a Dedicated Server ]]<br />
<br />
[[Troubleshooting]]<br />
<br />
[[Port Forwarding]]<br />
<br />
[[ Command Line Switches | Launch Options/Command Line Switches ]]<br />
</div><div class="vtbox margin1"><br />
== Community ==<br />
[[ Public Servers ]]<br />
<br />
[[ Workshop Mods ]]<br />
<br />
[[ Youtubers/Streamers ]]<br />
<br />
[[ Discord ]]<br />
</div><br />
<div class="vtbox margin1"><br />
== Links ==<br />
[http://store.steampowered.com/app/404530 Voxel Turf on Steam ]<br />
<br />
[http://www.indiedb.com/games/voxel-turf Voxel Turf on IndieDb ]<br />
<br />
[https://discord.gg/UDV6qGj Official Discord ]<br />
<br />
[http://www.voxelturf.net Official Website ]<br />
<br />
[https://twitter.com/SnapperTheTwig Developer's Twitter]<br />
<br />
[https://www.youtube.com/user/snapperthetwig Developer's YouTube]<br />
</div><br />
<div class="vtbox margin1"><br />
== Turf 2 Stuff ==<br />
[[Turf 2 Design/Suggestions]]<br />
</div><br />
</div><br />
<div class="clear"></div><br />
<br />
<div class="vtbox margin1"><br />
<br />
==IndieDb Dev Diaries==<br />
IndieDB articles contain valuable information about the game. These may contain information and pictures that are yet to be moved here<br />
<br />
Dev Diary 1: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-1-economic-engine-part-1 Economic Engine I: Building Types, Supply and Demand ]<br />
<br />
Dev Diary 2: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-2-economic-engine-part-2 Economic Engine II: Modifiers, Desirability, Safety Rating, Repairing and Custom Buildings ]<br />
<br />
Dev Diary 3: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-3-weapons-part-1-small-arms-and-weapon-mods Weapons I: Small Arms and Weapon Mods ]<br />
<br />
Dev Diary 4: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-4-weapons-part-2-rockets-explosives-and-blast-resistance Weapons II: Rockets, Explosives and Blast Resistance ]<br />
<br />
Dev Diary 5: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-5-mechanisms-and-electronics Mechanisms, Circuits and Electronics ]<br />
<br />
Dev Diary 6: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-6-meet-the-law Dealing with the Law (CDF) ] (+[https://www.youtube.com/watch?v=dArgA4gTk0Q Youtube Video - Dealing with the CDF ])<br />
<br />
Dev Diary 7: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-7-urban-grand-strategy Urban Grand Strategy - Turf Wars and Diplomacy ] (+[https://www.youtube.com/watch?v=TOkzzSH0vSw Youtube Video - Urban Grand Strategy ])<br />
<br />
Dev Diary 8: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-8-protection-rackets-and-reputation-wide-vs-tall-play Reputation and Racketeering - Wide vs Tall ]<br />
<br />
Dev Diary 9: [http://www.indiedb.com/games/voxel-turf/news/watch-release-announcement-infinite-rockets-dev-diary-9-meet-the-bandits Meet the Bandits + Bandit Base Raiding &amp; Looting ] (+[https://www.youtube.com/watch?v=q5qsUZu-Vi4 Youtube Video - Fun with Infinite Rockets ])<br />
<br />
Dev Diary 10: [http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-10-missions-and-co-op Missions &amp; Co-Op ] (+[https://www.youtube.com/watch?v=oiza0Spxd5A Youtube Video - Racing Mission ])<br />
<br />
Dev Diary 11: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-11-player-bases-and-base-building Player Bases &amp; Base Building ]<br />
<br />
Dev Diary 12: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-12-stats-and-perks Stats and Perks ]<br />
<br />
Dev Diary 13: [http://www.indiedb.com/games/voxel-turf/news/2x-video-article-dev-diary-13-city-building-zoning-reward-buildings City Building, Zoning and Reward Buildings ] (+[https://www.youtube.com/watch?v=ffTSeiQTkCM Youtube Video - City Building Guide ]) (+[https://www.youtube.com/watch?v=8ZiuJ9hSmBo Youtube Video - Custom Buildings and Templates ])<br />
<br />
Dev Diary 14: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-14-boats-hovercrafts-patch Boats, Hovercrafts and Canals ]<br />
<br />
Dev Diary 15: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-15-new-bandit-base-car-shop-waypoint-system-moar New Bandit Base and Caryard + Waypoint System + Strategic Pausing ]<br />
<br />
Dev Diary 16: [http://www.indiedb.com/games/voxel-turf/news/dev-diary-16-control-points-vehicle-storage-base-escapes-renamable-bases Control Points, Vehicle Storage, Base Escapes, Renameable Bases]<br />
<br />
Major Update 4: [https://www.indiedb.com/games/voxel-turf/news/major-update-version-120-multiplayer-faction-system-flags-map-gen Mulitplayer Faction System, Flags and Flag Creator, Map Generator Upgrades]<br />
<br />
Dev Diary 17: [https://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-17-gunplay-improvements-new-dungeon-system Gunplay Improvements + New Dungeon System]<br />
</div></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Template:Version&diff=808Template:Version2019-05-04T00:14:37Z<p>SnapperTheTwig: </p>
<hr />
<div><div class="vtbox rightbar" style="font-size:80%;"><br />
{{#Switch: "{{{1}}}"<br />
| "Timeless" = This article is [[:Category:Persistent Articles|persistant]] and should be accurate for any version of the game.<br />
| "1.5.3" = This article is [[Project:Versioning|up to date]] for the current version ({{{1}}}) of the game.<includeonly>[[Category:Up To Date Articles]]</includeonly><br /><br />
| #Default = This article may be out of date. It was last updated for [[Project:Versioning|{{{1|an unknown version}}}]].<includeonly>[[Category:Potentially Outdated Articles]]</includeonly><br />
}}<br />
</div></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Template:Itemsr&diff=807Template:Itemsr2019-04-25T05:35:24Z<p>SnapperTheTwig: </p>
<hr />
<div><includeonly>|-<br />
|<div class="item_icon">https://wiki.voxelturf.net/mediawiki/items/item{{{1}}}.png</div><br />
| style="text-align:left;" | {{{2}}}<br />
|{{sigfig|{{{3}}}|2}}%<br />
|{{sigfig|{{{4}}}|2}}%<br />
|{{sigfig|{{{5}}}|2}}%<br />
|{{sigfig|{{{6}}}|2}}%<br />
|{{sigfig|{{{7}}}|2}}%<br />
|{{{8}}}<br />
|{{{9}}}<br />
|{{{10}}}<br />
</includeonly></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Template:Itemsr&diff=806Template:Itemsr2019-04-25T05:29:49Z<p>SnapperTheTwig: </p>
<hr />
<div><includeonly>|-<br />
|<div class="item_icon">//wiki.voxelturf.net/mediawiki/items/item{{{1}}}.png</div><br />
| style="text-align:left;" | {{{2}}}<br />
|{{sigfig|{{{3}}}|2}}%<br />
|{{sigfig|{{{4}}}|2}}%<br />
|{{sigfig|{{{5}}}|2}}%<br />
|{{sigfig|{{{6}}}|2}}%<br />
|{{sigfig|{{{7}}}|2}}%<br />
|{{{8}}}<br />
|{{{9}}}<br />
|{{{10}}}<br />
</includeonly></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Running_a_Dedicated_Server&diff=805Running a Dedicated Server2018-12-25T10:38:00Z<p>SnapperTheTwig: /* Installing Workshop Mods */</p>
<hr />
<div>This article explains how to deploy a Voxel Turf Dedicated Server on a Linux VPS.<br />
<br />
== Deploying a VPS ==<br />
You can grap a cheap VPS. A 1 core VPS will get you started but it is recommended that you have a 2 core VPS.<br />
<br />
This article assumes that you have one. HOST can be substituted with the IP address of the server (eg 1.2.3.4).<br />
<br />
===SSH into the server===<br />
(enter this on your local linux termanal)<br />
<source><br />
LOCAL MACHINE:<br />
ssh root@HOST<br />
</source><br />
<br />
<br />
===Set up a user===<br />
<source><br />
useradd -m turf<br />
passwd turf<br />
adduser turf sudo<br />
su - turf<br />
</source><br />
<br />
===Security (Optional)===<br />
<br />
Set up passwordless access via ssh (using keys and not passwords) <br />
<source><br />
LOCAL MACHINE:<br />
ssh-keygen<br />
ssh-copy-id -i ~/.ssh/id_rsa turf@HOST<br />
</source><br />
<br />
Set the ssh port to something other than the default (21). This will help stop people trying to brute force into your server. Also disable root login & password login. To do this, change:<br />
<source><br />
sudo nano /etc/ssh/sshd_config <br />
</source><br />
To:<br />
<source><br />
Port <NEW PORT NUMBER><br />
PermitRootLogin no<br />
ChallengeResponseAuthentication no<br />
PasswordAuthentication no<br />
UsePAM no <br />
</source><br />
<br />
To login to your server you'll have to use:<br />
<source><br />
ssh -p <NEW PORT NUMBER> turf@HOST<br />
</source><br />
<br />
===Tips===<br />
You can set the default shell to bash on the server. This enables tab completion and arrow keys.<br />
<source>sudo chsh -s /bin/bash USERNAME</source><br />
<br />
==Installing Voxel Turf==<br />
===Installing Dependencies===<br />
<source><br />
sudo apt-get update <br />
sudo apt-get upgrade<br />
sudo apt-get install libsdl2-2.0-0 <br />
sudo apt-get install libsdl2-net-2.0-0 <br />
</source><br />
<br />
<br />
===Installing Steam and SteamCMD===<br />
<source><br />
sudo apt-get install lib32gcc1<br />
mkdir Steam<br />
cd Steam<br />
wget http://media.steampowered.com/client/steamcmd_linux.tar.gz<br />
tar -xvzf steamcmd_linux.tar.gz<br />
</source><br />
<br />
Alternatively you can just copy the files from a linux installation of Voxel Turf onto the server<br />
<br />
===Using SteamCMD to install Voxel Turf===<br />
<source><br />
./steamcmd.sh<br />
</source><br />
<br />
In Steam><br />
<source><br />
login anonymous<br />
force_install_dir /home/<USER>/turf<br />
app_update 526340<br />
quit<br />
</source><br />
<br />
You should be now able to run the server and play.<br />
<br />
To install a beta branch use:<br />
<source><br />
app_update 526340 -beta beta validate<br />
</source><br />
<br />
==Running The Server==<br />
Running <code>vtserver --help</code> will give you a list of command line switches.<br />
<br />
===Start Command===<br />
An easy way to generate a start command is to run the game locally (on your machine) and extract the start command from the logs (<code>GAMEFOLDER/logs/startserver.log</code>).<br />
<br />
You should see something like this:<br />
<code>--serverName "YOUR Turf Server" --saveGame "Sora_Turf" --publicGame OFF --dedicated OFF --difficulty 1 --maxPlayers 8 --hostPlayer 36563646 --newGame ON --gameMode "Turf" --genmap 4096 4096 --randomSeed "46756168" --steam</code><br />
<br />
Change it to<br />
<code>--serverName "NAME Turf Server" --saveGame "GAMESAVENAME" --publicGame ON --difficulty 1 --maxPlayers 8 --gameMode "Turf" --genmap 2048 2048</code><br />
<br />
===Permissions===<br />
Go to GAMEFOLDER/settings/globalpermissions.txt and make it look like:<br />
<source><br />
%ADMINS<br />
;UID<br />
</source><br />
replace ;UID with the UID from steam (SteamID3) For example "[U:1:145678]" so I put ";145678"<br />
Can be found here: http://steamid.co/ or from "--HostPlayer" in startserver.log on the local machine.<br />
<br />
<br />
<br />
==Advanced Stuff==<br />
<br />
===Installing Workshop Mods===<br />
<br />
You can use the following script (or similar) to install Steam Workshop mods<br />
<source><br />
login anonymous<br />
force_install_dir /home/<USER>/turf/workshop/<br />
workshop_download_item 404530 1139738481<br />
workshop_download_item 404530 1146791667<br />
workshop_download_item 404530 1147901316<br />
workshop_download_item 404530 1148991672<br />
workshop_download_item 404530 1150505297<br />
workshop_download_item 404530 1151247017<br />
workshop_download_item 404530 1151814594<br />
workshop_download_item 404530 1155491803<br />
workshop_download_item 404530 1157290153<br />
workshop_download_item 404530 1161093711<br />
workshop_download_item 404530 1161805016<br />
workshop_download_item 404530 1163198197<br />
workshop_download_item 404530 1173209773<br />
workshop_download_item 404530 1186472758<br />
workshop_download_item 404530 1188474602<br />
workshop_download_item 404530 1194894626<br />
workshop_download_item 404530 1214171560<br />
workshop_download_item 404530 1214209573<br />
workshop_download_item 404530 1228209888<br />
workshop_download_item 404530 1232559786<br />
workshop_download_item 404530 1286749403<br />
workshop_download_item 404530 1292765889<br />
workshop_download_item 404530 1293667849<br />
workshop_download_item 404530 1297767382<br />
workshop_download_item 404530 1313810046<br />
workshop_download_item 404530 1356700312<br />
workshop_download_item 404530 1357159347<br />
workshop_download_item 404530 1359235841<br />
workshop_download_item 404530 1374585114<br />
workshop_download_item 404530 1382550977<br />
workshop_download_item 404530 1388371537<br />
workshop_download_item 404530 1414621518<br />
workshop_download_item 404530 1362695804<br />
workshop_download_item 404530 1422753063<br />
workshop_download_item 404530 1439594806<br />
workshop_download_item 404530 1438699284<br />
workshop_download_item 404530 1448258410<br />
workshop_download_item 404530 1448258410<br />
workshop_download_item 404530 1567312287<br />
workshop_download_item 404530 1569424047<br />
workshop_download_item 404530 1502040207<br />
<br />
quit<br />
</source><br />
<br />
And then you make vtserver "see" the mods using a symbolic link<br />
<br />
<source><br />
cd ~/turf/<br />
rm -rf mods<br />
ln -s workshop/steamapps/workshop/content/404530/ mods<br />
</source><br />
<br />
===Running the Server Continuously===<br />
This allows you to auto-restart the server if it crashes. You can find this script in <code>/linux_server_admin_scripts_and_instructions/runvtserver.sh</code>.<br />
<br />
<source><br />
#!/bin/bash<br />
BASE=/home/USER/<br />
DIR=$BASE/turf/<br />
while :; do<br />
# Run the server<br />
$DIR/vtserver --saveGame SAVE_FILE --publicGame ON --maxPlayers 8 --serverName "SERVER_NAME"<br />
sleep 1<br />
done<br />
</source><br />
<br />
It is recommended that you run <code>runvtserver.sh</code> through <code>solo.pl</code> (which is provided in <code>/linux_server_admin_scripts_and_instructions/solo.pl</code>. Solo.pl will ensure that ''only one'' instance of the script is running. Solo.pl binds to a port, not a lockfile so it won't break if your system randomly hard resets.<br />
<br />
Use crontab (<code>crontab -e</code>) to enter the following:<br />
<source>* * * * * /home/USER/solo.pl -port=3801 -verbose ./runvtserver.sh >/dev/null 2>&1</source><br />
<br />
Port 3801 is the lock port for solo.pl, NOT the port that vtserver uses. vtserver uses port 5728 by default. The {{file| >/dev/null 2>&1}} is to suppress crontab trying to log and email the console output of vtserver <br />
<br />
<br />
This provides triple redundancy: When the server starts up crontab will run solo.pl which starts runvtserver.sh which runs vtserver. If vtserver crashes then runvtserver.sh will ''immediately'' restart it. Crontab will start runvtserver.sh if it is not running, and solo.pl prevents crontab spawning endless instances of runvtserver.sh.<br />
<br />
===Orderly Shutdown===<br />
vtserver accepts SIG_HUP interrupts. This will cause an orderly shutdown (save and exit). It will also instruct any connected clients to try and reconnect.<br />
<source>killall -s HUP vtserver</source><br />
<br />
===Polling Server Status===<br />
vtserver will create a file in the logs directory: {{file|logs/server_status.txt}}. This file is updated every 30 seconds. You can use this, for example, to update a webpage indicating how many players are on the server.<br />
<br />
Here is an example output:<br />
<source># This file is updated every 30s while the server is running<br />
# timestamp ; serverid ; players ; maxplayers ; public ; serverName ; gamemode ; serverversion<br />
1520494242 ; 3837146104 ; 0 ; 8 ; false ; "" ; "Build" ; 1.1.0-Beta1-g76v<br />
</source><br />
<br />
===serverscript.lua===<br />
[[File:serverscript_lua.png|thumb|Placing a serverscript.lua file in a save game's directory will cause it to be executed by vtserver on startup]]<br />
Placing a plaintext file serverscript.lua in the games save directory will cause the server to execute the script whenever that save is executed. You can use this to write custom mods for the server, give the players stuff when they log in or even redirect players to other servers (you can make stargates)!<br />
<br />
===Periodic Shutdown and Restart with serverscript.lua===<br />
This can be useful to clear the map of dumped vehicles and fix any bugs that may have creeped into the server's state. Here is an example script from the Lets Build A City server that shuts down the server every 6 hours. It also sets the Message Of The Day and shows some other hooks.<br />
<br />
<syntaxhighlight lang=lua><br />
SERVER_RESET_PERIOD = 60*6;<br />
<br />
--Worker functions<br />
function timeTillNextServerReset ()<br />
local NH = turf.NetworkHandler.getInstance(); <br />
local uptime = NH:getUptimeInSeconds();<br />
return SERVER_RESET_PERIOD*60 - uptime, uptime;<br />
end<br />
<br />
function getFormatedTimeTillReset (timeTillReset)<br />
local minutesRemaining = math.floor(timeTillReset/60);<br />
if (minutesRemaining > 2) then return tostring(minutesRemaining) .. " minutes"; end<br />
return tostring(math.max(0, timeTillReset)) .. " seconds!";<br />
end<br />
<br />
-- CustomFunc - code injection<br />
customFunc.OnHour_extra = function (GMS, Net, W, timeOfDay)<br />
local NH = turf.NetworkHandler.getInstance(); <br />
local timeToReset = timeTillNextServerReset ();<br />
<br />
if (timeToReset > 10 and timeToReset < 600) then<br />
NH:broadcastSM ("Server will be rebooting in "..getFormatedTimeTillReset(timeToReset), 0);<br />
end<br />
end<br />
<br />
<br />
-- On new player login<br />
customFunc.OnNewPlayer_extra = function (GMS, P, I, PCr, W)<br />
-- Give them items, send a message, etc<br />
end<br />
<br />
<br />
<br />
-- Toggleable static bool for sending the "restart in X seconds" messages<br />
customFunc.pollServerTick_extra_static_tickCount = 0;<br />
<br />
-- This function is called every tile-entity tick (4Hz), not every server frame tick (variable, 15Hz/33Hz/67Hz depending on user configuration as defined in serverprefs_1000.txt)<br />
customFunc.pollServerTick_extra = function (NH) <br />
local timeToReset = timeTillNextServerReset ();<br />
<br />
-- Send a "RESTARTING IN X" seconds if we are less than 10 seconds to go and this is the first of every 4 ticks.<br />
if (timeToReset < 10 and timeToReset > 0 and customFunc.pollServerTick_extra_static_tickCount == 0) then<br />
NH:broadcastSM ("Rebooting Server in ".. tostring(timeToReset) .. " seconds!", 0);<br />
NH:playSoundToAllClients ("CLICK");<br />
end<br />
customFunc.pollServerTick_extra_static_tickCount = customFunc.pollServerTick_extra_static_tickCount+1;<br />
if (customFunc.pollServerTick_extra_static_tickCount >= 4) then customFunc.pollServerTick_extra_static_tickCount = 0; end<br />
<br />
if (timeToReset <= 0) then<br />
NH:sendAllPlayersToServer ("", ""); -- Telling players to go to (empty string) server tells them to drop and reconnect to this server<br />
NH:flagShutdown (); -- Showdown the server. You'll have to restart it with a shell script<br />
end<br />
end<br />
<br />
<br />
-- No missions on this server!<br />
--turf.MissionHandler.getInstance():removalAllMissions();<br />
<br />
-- Set the MOTD<br />
turf.NetworkHandler.getInstance():setMessageOfTheDay ("==============================\nWelcome to the Let's Build A City server!\n ~SnapperTheTwig\n==============================");<br />
</syntaxhighlight></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=City_Building&diff=733City Building2018-09-25T02:23:14Z<p>SnapperTheTwig: </p>
<hr />
<div>{{version|1.3.3}}<br />
{{stub}}<br />
<br />
==Strategy==<br />
* Build industry first! Industrial population creates demand for housing.<br />
* Build housing next, but away from industry as you'll get a "Near Industry" desirability malus.<br />
* Build shops (commerce) near houses. Build different kinds of shops! Shops of the same kind compete with each other, undermining profits!<br />
* Build offices if you have positive office demand.<br />
<br />
==See Also==<br />
[http://www.indiedb.com/games/voxel-turf/news/2x-video-article-dev-diary-13-city-building-zoning-reward-buildings Dev Diary 13: City Building, Zoning and Reward Buildings]<br />
<br />
[http://www.indiedb.com/games/voxel-turf/news/dev-diary-1-economic-engine-part-1 Dev Diary 1: The Economic Engine]<br />
<br />
[http://www.indiedb.com/games/voxel-turf/news/dev-diary-2-economic-engine-part-2 Dev Diary 2: The Economic Engine Part 2]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Command_Line_Switches&diff=732Command Line Switches2018-09-25T02:22:59Z<p>SnapperTheTwig: </p>
<hr />
<div>{{version|1.3.3}}<br />
<br />
==Using Command Line Switches In Steam==<br />
[[file:LaunchOptions.jpg|thumb]]<br />
* First open Steam, then right click Voxel Turf<br />
* Then click "launch options". There you can add or edit launch options<br />
<br />
These launch options will apply to the client (vtclient). For example:<br />
{{file|--borderless}} will run the client in borderless windowed mode.<br />
<br />
If you want to apply server options you have to use {{file|--S}}, every argument past that will be passed to the server. For example:<br />
{{file|--S --timeout 20000 --g 7}} will mean that any servers started by the client will have the arguments {{file|--timeout 2000 --g 7}} passed to them.<br />
<br />
==Client (vtclient)==<br />
Below is the output of {{file|vtclient --help}}<br />
<br />
<source><br />
TURF Client: Version 1.1.0.<br />
(C) 2012 Liam Twigger <br />
OMP Num Threads: 8<br />
Client Init Clock: 0<br />
Usage: client <server_address><br />
<br />
Command Line Switches: (all case sensitive)<br />
--fs Enables/forces fullscreen.<br />
--windowed Enables/forces windowed mode.<br />
--borderless Enables/forces borderless windowed mode.<br />
--width WIDTH Sets the width of the window to WIDTH.<br />
--height HEIGHT Sets the width of the window to HEIGHT.<br />
--physics STATE STATE is either ON, OFF or AUTO (case sensitive). This sets whether physics is simulated. If your playing this<br />
game over LAN or singleplayer (<server> = localhost), this is recommended to be off to prevent redundant<br />
calculations wasting CPU. The default is OFF.<br />
--gameDir DIR Sets the directory where files are loaded from<br />
--debugDraw STATE STATE is either ON or OFF. Physics must be on for this to have effect. This draws the physics meshes.<br />
--mtlighting STATE STATE is either ON or OFF. Use multithreaded chunk lighting algorithim.<br />
--mtrendering STATE STATE is either ON or OFF. Use multithreaded chunk graphics mesh generation algorithim.<br />
--help Displays this message.<br />
--fm Free Memory: Tells the program to deallocate memory on exit (as opposed to just closing and letting the OS<br />
do it). The reason why the game does not deallocate memory on shutdown be default is to prevent the game from<br />
loading things from swap to deallocate them, which leads to a long shutdown.<br />
--profiler Spits out how long it takes to generate a chunk's VBO, lighting recalculations and chunk physics mesh regeneration.<br />
--sleep MSEC Sets how many milliseconds the game will sleep for between frames. This is a smart sleep, so that if the game<br />
takes DeltaT milliseconds to render a frame, the game will sleep for (MSEC - DeltaT) milliseconds for smooth<br />
operation. This command is useful for preventing the game from hogging all the CPU.<br />
--renderItems ID Starts the program, spits out ui BMPs for item ID, then closes. Use ALL to render all items<br />
--sunlightMode STATE STATE is either NORMAL, MIDDAY, MIDNIGHT, DAWN or DUSK. Renders daylight as if its stuck at this time.<br />
--v Verbose output - for debuging.<br />
--echoBlockPlacement Whenever a block is set, a message will appear in the in-game console.<br />
--echoItemIds An items id will be displayed when seleceted as well as its name.<br />
--strictLua STATE STATE is either ON or OFF. If ON, abort if there is an error loading Lua scripts. Useful for debugging Lua scripts.<br />
Default state is ON.<br />
--login USER PASS Logs in on start up with specified username and password<br />
--demo Run in demo mode<br />
--lan Run in Local LAN mode. This will only allow you to join local MP servers and will provide you with a generic profile<br />
--vr Enable VR mode. This is VERY experimental<br />
--noGpuNuke Use this to stop the game unloading all GPU memory when it thinks its full<br />
--timeout TIMEOUT Sets the connection timeout in ms (Default 12000)<br />
--pixmapFont STATE STATE is either ON or OFF. Uses pixmap fonts instead of texture fonts.<br />
--lagSpike TIME If a frame takes longer than TIME ms to render, spit out profiling information to console. Default: 10000ms.<br />
--port ID Sets the outgoing port that the game tries to use first. If this port is not avaliable it will revert to default behaviour<br />
--exportChunksToObj Rendered chunks will be generated as .obj files in the cache directory<br />
--S (args) Everything after --S is passed directly as arguments to any servers started by this client.<br />
</source><br />
<br />
==Server (vtserver)==<br />
Below is the output of {{file|vtserver --help}}<br />
<br />
<source><br />
TURF Server: Version 1.1.0.<br />
(C) 2012 Liam Twigger <br />
--help<br />
Usage: vtserver<br />
<br />
Command Line Switches: (all case sensitive)<br />
--help Displays this message.<br />
--port PORT Uses PORT as the port<br />
--game ID Sets the game id (default: 0)<br />
--g ID Alias of --game<br />
--gameDir DIR Sets the directory where files are loaded from<br />
--v Verbose output - for debuging.<br />
--strictLua STATE STATE is either ON or OFF. If ON, abort if there is an error loading Lua scripts. Useful for debugging Lua scripts.<br />
Default state is ON.<br />
--profiler Profiling information.<br />
--outputToFile Redirects program output (stdout) to file serverlog.txt<br />
--latchToClient LATCH Do not use this. This is an argument when running the server from within the client, to the server this.<br />
--serverName NAME Name of the server, eg "Robbo's Turf Server"<br />
--saveGame FILENAME Name of the save game. Will be stored in savegames folder<br />
--publicGame STATE If set to ON, this server will be listed publicly online. Default is OFF.<br />
--dedicated STATE If set to ON, this server will be persistant if the host disconnects. Default is ON.<br />
--maxPlayers NUMBER Maximum number of players.<br />
--gameMode MODE The game mode, eg Build, Trash, Turf.<br />
--gameModeVars { ARGS } Various settings for the game. Format is { gm1, value ; gm2, value1, value2 ; etc }. There must be spaces around the<br />
starting and finishing braces.<br />
--timeout TIMEOUT Sets the connection timeout in ms (Default 12000)<br />
--genmap XSIZE YSIZE If starting a new game, generates a new XSIZE*ZSIZE map. XSIZE and ZSIZE will be rounded to multiple of 128.<br />
--loadmap FILENAME If starting a new game, loads the map from a file in the maps/ directory<br />
--flatmap If generating a new map, make it flat<br />
--newGame STATE STATE is either ON or OFF. Set to ON to enable<br />
--randomSeed SEED If generating a new map, use this seed. SEED can either be a number, or a string<br />
--simulationPeriod T T is the time delay between simulation frames in ms. Simulation frequency = 1000/T Hz.<br />
Default: 60ms<br />
--trustClient STATE Trust clients' positions. STATE is ON by default, can be set to OFF for strict server authority<br />
--singlePlayer PID Puts the server into Singleplayer mode. It will only accept the player with id PID<br />
--lagSpike TIME If a loop takes longer than TIME ms to execute, spit out profiling information to all players. Default: 2500ms.<br />
--difficulty VAL 0 = Hard, 1 = Medium, 2 = Easy. Default: 1.<br />
--customSkinTransfers STATE STATE is either ON or OFF. Set to OFF to disable<br />
--wsi PATH Adds a steam workshop item to the path of mods to load<br />
--computePanicThresh NUM Tells the server to stop spawning entities and doing complex AI stuff if its taking longer than this to do a simulation loop<br />
--lan Runs the server in local Lan mode<br />
<br />
On linux you can safely shutdown the server with SIGHUP (killall -s HUP vtserver). This will tell the server to save and shutdown orderly<br />
</source></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Weapons&diff=731Weapons2018-09-25T02:22:34Z<p>SnapperTheTwig: </p>
<hr />
<div>{{stub}}<br />
{{version|1.3.3}}<br />
==Small Arms==<br />
There are 5 kinds of small arms and 3 tiers (black, silver, gold). Higher tier weapons can only be taken from [[Bandit Base|Bandit Bases]].<br />
<br />
[[file:basicWeapons.png|center|700px]]<br />
<br />
===Stats===<br />
<br />
==Weapon Mods==<br />
Up to two weapon mods can be applied to a weapon at a time. There is no way to remove them from an attached weapon, so be careful!<br />
<br />
==Rocket Launchers==<br />
There are 4 rocket launchers in the game.<br />
<br />
==Grenades==<br />
There is currently one kind of grenade in the game.<br />
<br />
==Combat Strategy==<br />
* Aim for the head - some weapons (such as the Assault Rifle and the Rifle) do significantly more damage for head shots.<br />
* Crouch! This not only reduces your hitbox size, but it reduces the chance of Bandits hearing your footsteps.<br />
* Be sure to be in the line of sight of one enemy at a time! Don't charge into rooms full of enemies, you'll get killed very quickly.<br />
* Carry several weapons and switch them out when you run out of ammo. Switching weapons is way faster than reloading<br />
<br />
==Modding Scripts==<br />
Have a look at {{file|scripts/common/define_weapons.lua}}.<br />
It is recommended that you use the hook provided at the end of the file - the defineWeaponsUserCallback table.<br />
<br />
<source><br />
function myWeaponMod (BlockTypes, ItemTypes)<br />
-- Your code here<br />
end<br />
<br />
<br />
if (defineWeaponsUserCallback == nil) then defineWeaponsUserCallback = {} end<br />
defineWeaponsUserCallback[#defineWeaponsUserCallback+1] = { "myWeaponMod name | my description ", myWeaponMod };<br />
</source><br />
<br />
Be sure to define both your {{file|mods/MODNAME/scripts/server_scripts.lua}} and {{file|mods/MODNAME/scripts/client_scripts.lua}} to include your script file!<br />
<br />
==Modding Textures and Models==<br />
This is an example on how to modify the rifle's object and texture.<br />
You can get a new model to appear in the game by exporting as a .obj file, and placing it in<br />
<br />
{{file|/mods/YourModName/models/rifle.obj}}<br />
<br />
And the texture in:<br />
<br />
{{file|/mods/YourModName/textures/weapons/weapon12.EXT}} (for normal rifle)<br />
<br />
{{file|/mods/YourModName/textures/weapons/weapon13.EXT}} (for silver rifle)<br />
<br />
{{file|/mods/YourModName/textures/weapons/weapon14.EXT}} (for gold rifle)<br />
Where EXT is either .tga, .png or .jpg<br />
<br />
<br />
If you want weapon mods to work with the new model then that's a little more complicated:<br />
Weapon mods basically work by alpha-masking textures, and then the game combines several textures together to make the full weapon texture.<br />
You'll have to make the model have all the attachments (eg. scope, silencer) and have the parts of the texture for the attachments be *transparent*. Then create the textures for each component in {{file|/weapons/mods/}} - for example mod46.tga is the texture for the Scope for a Rifle. Also note that all pixels apart from the scope are transparent. Again tga, png and jpg are all supported. <br />
<br />
==External Links==<br />
[http://www.indiedb.com/games/voxel-turf/news/dev-diary-3-weapons-part-1-small-arms-and-weapon-mods Dev Diary 3: Weapons Part 1: Small Arms and Weapon Mods]<br />
<br />
[http://www.indiedb.com/games/voxel-turf/news/dev-diary-4-weapons-part-2-rockets-explosives-and-blast-resistance Dev Diary 4: Rockets, Explosives and Blast Resistance]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Turf_Wars&diff=730Turf Wars2018-09-25T02:22:19Z<p>SnapperTheTwig: </p>
<hr />
<div>{{version|1.3.3}}<br />
Turf Wars are conflicts between players and factions. They are the way you can take territory from others on the map.<br />
<br />
==Starting and Fighting a Turf War==<br />
[[file:DipScreen.png|thumb|The diplomacy screen. The red button "Turf War" button is used to start turf wars and turns into an "Offer Peace" button when a war is active]]<br />
Wars begin with a Declaration of War (DoW). To start a war the player/faction must have at least 1 [[base]] owned. If a player/faction has no bases then they cannot be declared upon.<br />
<br />
The objective during a war is to capture the enemies' bases while keeping control of your own. To capture a hostile base kill all the enemies and stand in the base until it is under your occupation.<br />
<br />
Occupying bases gives your side warscore. Warscore is calculated as ((Their_Bases_Occupied/Their_Bases_Owned) - (Your_Bases_Occupied/Your_Bases_Owned))*100% and will influence how willing an AI is to vote in favour of a peace deal.<br />
<br />
==Base Attacks==<br />
[[file:BaseAttack.png|thumb|The Base Attack Alert. A green arrow is displayed where friendly base attacks are. It's red when hostile.]]<br />
Base Attacks are massed waves over goons that are sent to capture bases. You can view how many base attacks a player or a faction can order by going to the player info screen. Human players require at least 6 bases to order base attacks and they must be garrisoned for the progress meter to charge.<br />
<br />
If a faction has no home bases under their control then they cannot launch a base attack.<br />
<br />
==Strategy==<br />
===Have Allies===<br />
Having an AI ally on your side can help you immensely. Watch out, if they capture bases they'll expect to be given one in a peace deal!<br />
<br />
===Pick off the Small Ones===<br />
A faction with no home bases under their control cannot issue base attacks. If you pick off the small factions first you can then focus on the bigger ones.<br />
<br />
===Camp and Capture===<br />
If you have a small number of bases then a good tactic is to defend your bases. Once a Base Attack is repealed the enemy will have to wait to issue another one (the "hold" phase of the base attack). They still have to wait even if the timer is removed from the screen. If you can snag one of their bases then you can gradually make gains against them.<br />
<br />
In this video this strategy is employed:<br />
https://www.youtube.com/watch?v=TOkzzSH0vSw<br />
<br />
<br />
===All Out Offensive===<br />
If you greatly outnumber the enemy in terms of base count you may want to disregard defence altogether and try to capture the bases quickly. If you can capture their bases before they take all of yours you can then return to liberate your bases after disabling their base attacks capability.<br />
<br />
===Use the Hostile Bases Waypoint Option===<br />
Check this box in the graphics settings menu.<br />
<br />
<br />
==Offering Peace==<br />
[[file:110_peace.jpg|thumb|A peace deal screen. If you hover over the checkbox you'll get a breakdown on whether or not the AI will accept]]<br />
A turf war only ends when a peace deal is signed by both sides of the conflict. When you are done fighting you can go to the peace screen to make an offer (its in the same place as the Turf War button). You can demand bases that are under your sides occupation, or you can demand reparations or humiliation.<br />
<br />
Once an offer is sent other players/factions vote on the deal. The offer will be accepted if more than 50% of the attackers and 50% of the defenders both vote for the deal<br />
<br />
'''Important''': A player or faction that has all of its home bases occupied will ALWAYS accept any peace offer!<br />
<br />
You can see how the AI is expected to vote and why by hovering your mouse over the checkbox.<br />
<br />
===Demanding Bases===<br />
Demanding a base costs (number_of_bases_owned*100/5) warscore and gives (number_of_bases_owned*100/5) aggression. If you are demanding from a faction with less than 5 bases owned then this is capped at 20 warscore/aggression. Example: Taking a base from a faction with 6 bases will cost 16 warscore and give 16 aggression. <br />
<br />
If you are a defender the aggression cost is reduced by 25%.<br />
<br />
Aggression will reduce the safety rating of all your lots by its amount, but will gradually decay while you're at peace.<br />
<br />
===Length of War Modifier===<br />
The length of war modifier starts at -66 and decays to zero at a rate of 3/minute. The AI is more willing to accept peace offers the lower this value is.<br />
<br />
===War Repairations===<br />
War reps mean that 10% of a factions income is distributed to the other side while a truce is in effect.<br />
<br />
===Humiliation===<br />
When a side is humiliated they lose 20 reputation. If they have positive reputation then half of the positive reputation lost is given to the other side. So in a 1v1 war, if a faction has 7 reputation and you demand humiliation, they will be set to -13 reputation and you will gain 3.5 reputation. If they have 25 rep you'll gain 10, if they have less than zero you'll get nothing.<br />
<br />
==Truces==<br />
When a war ends the participants will gain a 32 hour truce with the members of the opposing side (32 minutes of real time). While a truce exists between two players/factions they cannot start an offensive war against each another, nor will they join an offensive war against each another.<br />
<br />
==Diplomacy==<br />
Allies will always join a turf war unless there is a truce in effect.<br />
<br />
Warnings can be used to contain factions. If a warned faction starts an offensive war then the warner will be called in on the defensive side.<br />
<br />
Offering Protection can be used to protect factions. If someone starts a war against the protected faction you'll be called in on the defensive side.<br />
<br />
If an player/faction is going to be called in on both the offensive and defensive sides then the defensive call will take priority.<br />
<br />
==External Links==<br />
[http://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-7-urban-grand-strategy Dev Diary 7: Urban Grand Strategy]<br />
<br />
[http://www.indiedb.com/games/voxel-turf/news/major-update-version-110-ai-goons-can-be-issued-orders-ai-factions-build-cities Major Update Version 1.1.0: AI Goons Can Be Issued Orders, AI Factions Build Cites] - Includes information about the improved 1.1 peace system.</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Strategic_Pause&diff=729Strategic Pause2018-09-25T02:22:08Z<p>SnapperTheTwig: </p>
<hr />
<div>{{version|1.3.3}}<br />
[[File:stratpause.jpg|thumb|A Strat Paused menu screen]]<br />
Strategic Pausing (abr. ''Strat Pause'') was a feature added in version 1.0.28 which freezes the economic and strategic parts of the game under certain circumstances.<br />
<br />
==Motivation & Effects==<br />
Strategic Pausing was introduced to prevent [[Factions|AI Factions]] from taking over the map while the player is AFK (in singleplayer) or when players are offline (in multiplayer). It also intended to allow youtubers/streamers/modders alt-tab out of the game to do other work (such as editing) without the map being overrun.<br />
<br />
Strategic Pausing disables:<br />
* Economic Simulation (income, population changes, safety increase, etc)<br />
* AI Faction actions (launching base attacks, purchasing or racketeering property, etc)<br />
* onHour effects (aggression/reputation decay)<br />
<br />
Strategic Pausing does ''not'' disable tactical AI (CDF cars, bandits, etc).<br />
<br />
==Activating Strategic Pause==<br />
Strategic Pause will be engaged if you press Esc to open the Game Menu (see screenshot at the top of the article). If you are in a multiplayer server and all connected players are in that menu then Strat Pause will engage. The server will also enter strat pause if there are no players connected.<br />
<br />
If you are in the Game Menu you must wait 1 minute for Stat Pause to engage. This is to prevent an exploit where you can hit Esc when the hour changes to prevent onHour functions.<br />
<br />
==External Links==<br />
[http://www.indiedb.com/games/voxel-turf/news/dev-diary-15-new-bandit-base-car-shop-waypoint-system-moar IndieDb: Dev Diary 15]<br />
<br />
[https://steamcommunity.com/games/404530/announcements/detail/1652126739269707102 Steam Announcement for Patch 1.0.28]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Factions&diff=728Factions2018-09-25T02:21:55Z<p>SnapperTheTwig: </p>
<hr />
<div>{{version|1.3.3}}<br />
[[File:WikiFactionBaseMap.png|thumb|A faction base on the strategic map]]<br />
The AI Factions are groups that are competing for control of the city with the player. If left alone they will buy and racketeer property on the map. Later in the game they may start constructing extensions to the city.<br />
<br />
==Number Of Factions==<br />
[[File:WikiFactionBaseWGoon.jpg|thumb|The same faction base. Note the flag and the goon wearing a headband inside]]<br />
In [[Game Modes|Turf]] mode there are 4 factions by default, in [[Game Modes|Strategy]] and [[Game Modes|Strategy Zero]] modes there are 16. You can change the number of factions that spawn in any mode.<br />
<br />
Factions bases are allocated by the map generator {{file|scripts/server/map_generation/}} in the city. If there are not enough bases generated the generator will start sprinkling them around the city in a radial fashion. In [[Game Modes|Strategy Zero]] the factions are placing in completely random places on the map.<br />
<br />
==Faction Bases==<br />
Faction bases are the bases of control of the factions. The AI will garrison them with 1 goon during peace and 3 during war, finances permitting. If an AI is in debt they will not garrison bases. You can only capture and annex a factions' bases during a [[Turf Wars]].<br />
<br />
==Faction Expansion==<br />
[[File:wikiFactions.jpg|thumb|A Strategy Zero game where several factions have constructed roads and zones]]<br />
AI Factions may build new areas of the city by establishing roads and zoning new areas. They will establish new [[bases|peak profit]] if their peak profit is at least 50% of the value of unlock threshold for that base. For example, if base #3 is unlocked at $500 peak profit then they will construct a second base at $250 profit. The AI will also ''not'' construct new bases unless a player is approaching them in base count or networth.<br />
<br />
==Faction Resurrection==<br />
A dead faction may be revived if there are more than 5 unoccupied small (1x1) bandit bases on the map. They tend to spawn closer to the centre of the map. You can suppress faction resurrection by capturing all but 5 of the bandit bases on the map.<br />
<br />
=Modding=<br />
You can add/remove factions names by editing {{file|db/aiplayernames.txt}}.</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Bandit_Base&diff=727Bandit Base2018-09-25T02:21:42Z<p>SnapperTheTwig: </p>
<hr />
<div>{{version|1.3.3}}<br />
[[File:Bbase_map.jpg|thumb|A Bandit Base on the Strategic Map]]<br />
Bandit Bases are where [[Bandits]] hide. More importantly, these bases are where the Bandits store their loot!<br />
<br />
Bandit Bases are the only legal places where you can acquire silver and gold tier [[Weapons]] and [[Weapons|Weapon Mods]]. Useful mods such as the Explosive Mod and the Extra Shot Mod can only be found here. They also have a chance to spawn valuable items such as Jewellery or precious metal ingots.<br />
<br />
Bandit Bases have Levels that correspond to the strength of the base. These levels range from Level 1 (at the start of the game) to Level 5. They can be leveled-up by [[Lots|abandoning occupation]] after being captured. Higher level bandit bases have stronger Bandits and better loot.<br />
<br />
Bandit Bases can be permanently removed from the map by converting them to a [[Base|Player Base]].<br />
<br />
==Bandit Base Structure==<br />
Bandit Bases consist of a Spawner (A Burning Barrel), some sort of environment, and chests or lockers where loot can be found.<br />
<br />
Spawners come in 3 types:<br />
* Blue-Grey Burning barrels are the most common type. These spawn up to 5 Machine Gun bandits.<br />
* Yellow Burning Barrels are<br />
* Red Burning Barrels are half-spawners. These spawn either 2 bandits (at levels 1 and 2) or 3 bandits (levels 3 and up).<br />
<br />
<br />
==Types of Bandit Bases==<br />
[[File:Bbase_bunker.jpg|thumb|A Bandit Bunker in the Hills]]<br />
[[File:Bm_seabase.jpg|thumb|A Sea Base, with a Hovercraft up the stairs]]<br />
[[File:Bbase_bandithouse.jpg|thumb|A Bandit House]]<br />
===Small===<br />
Small bandit bases are scattered all over the map. They are 1x1 [[Lots]] in size.<br />
* Bandit Bunker (only spawns in Hills)<br />
* Bandit Seabase (only spawns in Sea lots). '''Note:''' These spawn [[Vehicles|Hovercrafts]] for you to steal!<br />
* Bandit Base<br />
* Bandit House<br />
* Bandit House 2 <br />
<br />
===Big===<br />
Big Bandit Bases spawn 3x the loot, but also have 3x the enemies. These are 2x3 [[Lots]] in size<br />
* Bandit Fort<br />
* Bandit Factory<br />
<br />
<gallery><br />
Bbase_fort.jpg|A Bandit Fort<br />
Bbase_factory.jpg|Bandit Factory Exterior<br />
Bbase_factory_interior.jpg|Bandit Factory Interior<br />
</gallery><br />
<br />
==Strategy==<br />
===Combat===<br />
Bandits will respawn continuously, unless a player is located somewhere within the base. More specifically, bandits will continue to spawn unless the base is under siege - i.e. there is a ''non-bandit'' on the base (a faction goon or a foot CDF officer do count).<br />
<br />
All vanilla bandit bases in the game have at least 1 point of entry where you can get into the base without having to blow anything up. If you are using explosives be careful not to destroy your cover!<br />
<br />
When invading a Bandit Base, move slowly and take cover. Try to only have one bandit in your line of sight at a time - if you run out into the open you can be attacked by many bandits at the same time! When you are running, the Bandits can hear you. If you Crouch, then the Bandits are less likely to notice you.<br />
<br />
Note:As Of Patch 1.10 When a Base Defender in a Bandit Base is Killed, A Timer is set to prevent instant respawns. The respawn time is different on each difficulty.<br />
*Easy:8 Seconds<br />
*Normal:5 Seconds<br />
*Hard:2 Seconds<br />
<br />
===Catch and Release===<br />
Releasing a Bandit Base may increase its level; making the Bandits stronger and the loot better. You must be a minimum of 64m (4 lots) away from the base to release it. A [[tick]] may be required to respawn the loot.<br />
[[File:Bandit_occupiedbanditbase.jpg|500px|center]]<br />
<br />
===Multiplayer===<br />
If you are attacking a base with an ally and they die, hide somewhere on the base. This will suppress bandit respawns.<br />
<br />
Taking out a Big Bandit Base is a lot easier with a friend! Having a [[Base]] nearby to recover is also a good idea. If you have a chest to store your winnings be sure to put some kind of shielding around it to prevent it being blown up by a stray rocket!<br />
<br />
==Loot==<br />
Level 1 bandit bases have a slight chance of spawning silver tier weapons and mods, and no chance of spawning gold weapons/mods<br />
<br />
The loot table can be found at the {{console|scripts/server/tile_entities/chest.lua}}<br />
<br />
When loot is generated the game will do a number of rolls to determine what items are created. In the table below, Lv1 through Lv5 are the chances that a roll will create a specific item. The Min/Max are the minimum/maximum stack sizes for roll. The RTO (Random Type Offset) column is a maximum random offset for an item spawn (so Concrete with an RTO of 10 may spawn a stack of item ids 4 through to 14). If rolls have the same itemId then they will be merged (hence you can have stacks above the maximum size if they combine).<br />
<br />
The loot generation algorithm will try 14 rolls. If this a big bandit base then this is tripled to 42. If this is the first time that loot is generated (such as on map generation) then the number of rolls is increased by 50% (to 21 and 63).<br />
<br />
{| class="wikitable" style="margin: auto; text-align: center;"<br />
|-<br />
| . || Item || Lv1 || Lv2 || Lv3 || Lv4 || Lv5 || Min || Max || RTO<br />
|-<br />
{{itemsr|4|Concrete|3.0455380450724|3.0467807799068|3.0555084026479|3.0794516864754|3.1271716468445|1|20|10}}<br />
|-<br />
{{itemsr|538|Cinderblock|3.0455380450724|3.0467807799068|3.0555084026479|3.0794516864754|3.1271716468445|1|20|5}}<br />
|-<br />
{{itemsr|576|Corrugated Iron|3.0455380450724|3.0467807799068|3.0555084026479|3.0794516864754|3.1271716468445|1|20|10}}<br />
|-<br />
{{itemsr|474|Bricks|3.0455380450724|3.0467807799068|3.0555084026479|3.0794516864754|3.1271716468445|1|20|10}}<br />
|-<br />
{{itemsr|544|Wood|3.0455380450724|3.0467807799068|3.0555084026479|3.0794516864754|3.1271716468445|1|20|10}}<br />
|-<br />
{{itemsr|722|Steel|3.0455380450724|3.0467807799068|3.0555084026479|3.0794516864754|3.1271716468445|1|5|10}}<br />
|-<br />
{{itemsr|1302|Barbed Wire|3.0455380450724|3.0467807799068|3.0555084026479|3.0794516864754|3.1271716468445|1|10|0}}<br />
|-<br />
{{itemsr|1283|Explosive Crate|3.0455380450724|3.0467807799068|3.0555084026479|3.0794516864754|3.1271716468445|1|3|0}}<br />
|-<br />
{{itemsr|10098|Detonator|3.0455380450724|3.0467807799068|3.0555084026479|3.0794516864754|3.1271716468445|1|1|0}}<br />
|-<br />
{{itemsr|14041|Old Boot|4.8728608721159|4.7986797283532|4.2777117637071|2.8484928099898|0|1|1|5}}<br />
|-<br />
{{itemsr|14033|Gold Ring|2.3054395521395|2.3026074422312|2.2827177713562|2.2281526223894|2.1194020113626|1|1|0}}<br />
|-<br />
{{itemsr|14034|Gold Necklace|2.3054395521395|2.3026074422312|2.2827177713562|2.2281526223894|2.1194020113626|1|1|0}}<br />
|-<br />
{{itemsr|14036|Gold Bracelet|2.3054395521395|2.3026074422312|2.2827177713562|2.2281526223894|2.1194020113626|1|1|0}}<br />
|-<br />
{{itemsr|14037|Big Diamond|1.1527197765164|1.1674358941561|1.2707859567917|1.5543156139115|2.1194020113626|1|1|0}}<br />
|-<br />
{{itemsr|14038|Silver Ingot|0.57635988781155|0.57565186034486|0.570679442699|0.55703815565734|0.52985050329929|1|1|0}}<br />
|-<br />
{{itemsr|14039|Gold Ingot|0.28817994390577|0.28580940859211|0.26916133746731|0.2234891648788|0.1324626255955|1|1|0}}<br />
|-<br />
{{itemsr|14040|Platinum Ingot|0|0.00050413039333351|0.0040445959565437|0.013757478189833|0.033115656398874|1|1|0}}<br />
|-<br />
{{itemsr|12039|Silencer Mod|2.0303586967149|2.016376446698|1.9181802749617|1.6487897570182|1.1118832519334|1|1|0}}<br />
|-<br />
{{itemsr|12040|Extra Shot Mod|0|0.0084632799484172|0.06790018675946|0.23095887660114|0.55594162638366|1|1|0}}<br />
|-<br />
{{itemsr|12041|Scope Mod|2.0303586967149|2.016376446698|1.9181802749617|1.6487897570182|1.1118832519334|1|1|0}}<br />
|-<br />
{{itemsr|12042|Scope Mod Silver|0|0.016926559884139|0.13580037341707|0.46191775285584|1.1118832519334|1|1|0}}<br />
|-<br />
{{itemsr|12043|Scope Mod Gold|0|0.0084632799484172|0.06790018675946|0.23095887660114|0.55594162638366|1|1|0}}<br />
|-<br />
{{itemsr|12044|Explosive Mod|2.0303586967149|2.016376446698|1.9181802749617|1.6487897570182|1.1118832519334|1|1|0}}<br />
|-<br />
{{itemsr|12045|Explosive Mod Silver|0|0.016926559884139|0.13580037341707|0.46191775285584|1.1118832519334|1|1|0}}<br />
|-<br />
{{itemsr|12046|Explosive Mod Gold|0|0.0084632799484172|0.06790018675946|0.23095887660114|0.55594162638366|1|1|0}}<br />
|-<br />
{{itemsr|12047|Armour Piercing Mod|2.0303586967149|2.016376446698|1.9181802749617|1.6487897570182|1.1118832519334|1|1|0}}<br />
|-<br />
{{itemsr|12048|Armour Piercing Mod Silver|0|0.016926559884139|0.13580037341707|0.46191775285584|1.1118832519334|1|1|0}}<br />
|-<br />
{{itemsr|12049|Armour Piercing Mod Gold|0|0.0084632799484172|0.06790018675946|0.23095887660114|0.55594162638366|1|1|0}}<br />
|-<br />
{{itemsr|12000|Pistol|1.3535724647473|1.3365937114555|1.2173533479884|0.89023037866888|0.2382606971407|1|3|0}}<br />
|-<br />
{{itemsr|12001|Pistol Silver|0.27071449262461|0.28472891786109|0.38315105347138|0.65316147872876|1.1913034848696|1|3|0}}<br />
|-<br />
{{itemsr|12002|Pistol Gold|0|0.0036271199797066|0.029100080054319|0.098982375735693|0.2382606971407|1|3|0}}<br />
|-<br />
{{itemsr|12003|Pistol Bullets|3.2485739147439|3.2498994985673|3.2592089628245|3.2847484655738|3.3356497566341|1|60|0}}<br />
|-<br />
{{itemsr|12006|Assault Rifle|1.3535724647473|1.3365937114555|1.2173533479884|0.89023037866888|0.2382606971407|1|11|0}}<br />
|-<br />
{{itemsr|12007|Assault Rifle Silver|0.27071449262461|0.28472891786109|0.38315105347138|0.65316147872876|1.1913034848696|1|11|0}}<br />
|-<br />
{{itemsr|12008|Assault Rifle Gold|0|0.0036271199797066|0.029100080054319|0.098982375735693|0.2382606971407|1|11|0}}<br />
|-<br />
{{itemsr|12009|Assault Rifle Rounds|3.2485739147439|3.2498994985673|3.2592089628245|3.2847484655738|3.3356497566341|1|90|0}}<br />
|-<br />
{{itemsr|12012|Shotgun|1.3535724647473|1.3365937114555|1.2173533479884|0.89023037866888|0.2382606971407|1|2|0}}<br />
|-<br />
{{itemsr|12013|Shotgun Silver|0.27071449262461|0.28472891786109|0.38315105347138|0.65316147872876|1.1913034848696|1|2|0}}<br />
|-<br />
{{itemsr|12014|Shotgun Gold|0|0.0036271199797066|0.029100080054319|0.098982375735693|0.2382606971407|1|2|0}}<br />
|-<br />
{{itemsr|12015|Shotgun Shots|3.2485739147439|3.2498994985673|3.2592089628245|3.2847484655738|3.3356497566341|1|12|0}}<br />
|-<br />
{{itemsr|12018|SMG|1.3535724647473|1.3365937114555|1.2173533479884|0.89023037866888|0.2382606971407|1|28|0}}<br />
|-<br />
{{itemsr|12019|SMG Silver|0.27071449262461|0.28472891786109|0.38315105347138|0.65316147872876|1.1913034848696|1|28|0}}<br />
|-<br />
{{itemsr|12020|SMG Gold|0|0.0036271199797066|0.029100080054319|0.098982375735693|0.2382606971407|1|28|0}}<br />
|-<br />
{{itemsr|12021|SMG Rounds|3.2485739147439|3.2498994985673|3.2592089628245|3.2847484655738|3.3356497566341|1|120|0}}<br />
|-<br />
{{itemsr|12024|Rifle|1.3535724647473|1.3365937114555|1.2173533479884|0.89023037866888|0.2382606971407|1|3|0}}<br />
|-<br />
{{itemsr|12025|Rifle Silver|0.27071449262461|0.28472891786109|0.38315105347138|0.65316147872876|1.1913034848696|1|3|0}}<br />
|-<br />
{{itemsr|12026|Rifle Gold|0|0.0036271199797066|0.029100080054319|0.098982375735693|0.2382606971407|1|3|0}}<br />
|-<br />
{{itemsr|12027|Rifle Bullets|3.2485739147439|3.2498994985673|3.2592089628245|3.2847484655738|3.3356497566341|1|13|0}}<br />
|-<br />
{{itemsr|12050|Health Vial|11.602049695421|11.581673092763|11.438569917555|11.045981919397|10.263537712977|1|1|0}}<br />
|-<br />
{{itemsr|12051|Health Pack|1.3922459635545|1.4023003846903|1.4729117429027|1.6666263248988|2.0527075425954|1|1|0}}<br />
|-<br />
{{itemsr|12052|Mega Health Pack|0|0.015624516815348|0.12535419084026|0.42638561799945|1.0263537709641|1|1|0}}<br />
|-<br />
{{itemsr|12032|Rocket Launcher|0.019336749647217|0.02129925468136|0.035081763299947|0.072892576793708|0.14825110048016|2|2|0}}<br />
|-<br />
{{itemsr|12033|Rockets|0.038673499294434|0.042598509362721|0.070163526599894|0.14578515358742|0.29650220096033|8|8|0}}<br />
|-<br />
{{itemsr|12034|Guided Missile Launcher|0|0.0022568746546039|0.018106716482769|0.061589033806495|0.14825110048016|1|1|0}}<br />
|-<br />
{{itemsr|12035|Guided Rockets|0|0.0022568746546039|0.018106716482769|0.061589033806495|0.14825110048016|8|8|0}}<br />
|-<br />
{{itemsr|12038|Grenade|0.38673498969577|0.38648978395983|0.38476772459682|0.38004344201507|0.3706277503665|1|2|0}}<br />
|-<br />
{{itemsr|14052|Fat Stack|2.0303586967149|2.0311871866045|2.0370056017653|2.0529677909836|2.0847810978963|1|1|0}}<br />
|-<br />
{{itemsr|14050|Cash|8.1214347868598|8.1247487464181|8.1480224070612|8.2118711639345|8.3391243915853|1|1|0}}<br />
|-<br />
{{itemsr|14051|Chump Change|2.0303586967149|2.0311871866045|2.0370056017653|2.0529677909836|2.0847810978963|1|1|0}}<br />
|-<br />
{{itemsr|16000|Basic Armour|0.33839311618684|0.33414842786388|0.3043383369971|0.22255759466722|0.059565174285175|1|1|0}}<br />
|-<br />
{{itemsr|16001|Improved Armour|0.067678623156153|0.071182229465273|0.095787763367844|0.16329036968219|0.2978258712174|1|1|0}}<br />
|-<br />
{{itemsr|16002|Quality Armour|0|0.00090677999492666|0.0072750200135797|0.024745593933923|0.059565174285175|1|1|0}}<br />
|-<br />
{{itemsr|16003|Basic Composite Armour|0.22559541079122|0.22276561857592|0.20289222466473|0.14837172977815|0.039710116190117|1|1|0}}<br />
|-<br />
{{itemsr|16004|Improved Composite Armour|0.045119082104102|0.047454819643515|0.063858508911896|0.10886024645479|0.1985505808116|1|1|0}}<br />
|-<br />
{{itemsr|16005|Quality Composite Armour|0|0.00060451999661777|0.0048500133423864|0.016497062622615|0.039710116190117|1|1|0}}<br />
|-<br />
{{itemsr|14066|Blue Dungeon Key|0|0.00362712|0.0291000801|0.0989823757|0.2382606971|1|1|0}}<br />
|}<br />
<br />
==Modding==<br />
You can add Bandit Bases to a [[LotPack]] by marking it. Be sure to spawn a Burning Barrel! Use the {{console|/give "Burning Barrel Grey"}} command to spawn some into your inventory. By convention Machine Gun [[Bandits]] spawn from Grey Barrels and [[Weapons|Rocket Launcher]] [[Bandits]] spawn from Yellow Barrels. Red Burning Barrels are "Half Spawners". By convention use 1 regular spawner = 2 Half Spawners.<br />
<br />
To add it to a lotpack use one of the following lot types:<br />
<br />
{{console|MOBBASE_VACANT}}, {{console|MOBBASE_HILLS}}, {{console|MOBBASE_SEA}} spawn in their relevant locations. They ''must'' be 1x1 lots!<br />
<br />
{{console|MOBBASE_BIG}} ''must'' be a 2x3 lot.<br />
<br />
==External Links==<br />
[http://www.indiedb.com/games/voxel-turf/news/watch-release-announcement-infinite-rockets-dev-diary-9-meet-the-bandits Dev Diary 9: Meet The Bandits (IndieDb)]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Template:Version&diff=726Template:Version2018-09-25T02:20:51Z<p>SnapperTheTwig: </p>
<hr />
<div><div class="vtbox rightbar" style="font-size:80%;"><br />
{{#Switch: "{{{1}}}"<br />
| "Timeless" = This article is [[:Category:Persistent Articles|persistant]] and should be accurate for any version of the game.<br />
| "1.3.3" = This article is [[Project:Versioning|up to date]] for the current version ({{{1}}}) of the game.<includeonly>[[Category:Up To Date Articles]]</includeonly><br /><br />
| #Default = This article may be out of date. It was last updated for [[Project:Versioning|{{{1|an unknown version}}}]].<includeonly>[[Category:Potentially Outdated Articles]]</includeonly><br />
}}<br />
</div></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Dungeons&diff=725Dungeons2018-09-25T02:20:13Z<p>SnapperTheTwig: </p>
<hr />
<div>{{version|1.3.3}}<br />
[[File:Dgun_entrance.jpg|300px|thumb|right|A Dungeon Entrance]]<br />
Dungeons are mid-late game content that consist of large networks of rooms in the hills. They are initially hidden on the map and must be discovered. Entrances to dungeons are marked as fortification level 1 bandit bases and can be found as giant stone spires in the world, and individual dungeon rooms are disguised as hills lots.<br />
<br />
Bandits in dungeons are stronger than the bandit base inhabitants. They start at fortification level 6, and progress to level 10. The number of dungeons on the map is dependent on the number of hills lots on the map with a maximum of 5 spawning, space permitting. Each dungeon is progressively bigger than the last.<br />
[[File:Dgun_room.jpg|300px|thumb|right|A 2x2 Dungeon Room]]<br />
<br />
In each dungeon there is a Bandit King who functions as the boss, who drops a lot of valuable items + a key to the next dungeon, and perhaps more importantly, they drop a crown you can wear! If you are playing in multiplayer then they'll drop multiple keys.<br />
<br />
While in a dungeon you cannot tele-buy items, so stock up on healing items first! I firmly recommend that you level up a bit first (level 10 is a good guide for the first one), and get a few combat perks + silver or gold tier weapons and mods.<br />
<br />
==Entering a Dungeon==<br />
You can enter the spire at any time, but to be able to capture dungeon rooms you need a relevant key to disable the shields between rooms. To get the key for the first dungeon, the Blue Dungeon Key, you can do one of three things:<br />
<br />
* You can take the "Dungeon Debts" mission and pay the Schemer $50k for one. This mission will spawn once you reach level 10.<br />
* You can take the Griever's mission to kill Blasty McSurprise, Blasty himself drops a Blue Dungeon Key when he dies.<br />
* Blue Dungeon Keys are rare loot spawns in Bandit Bases.<br />
<br />
=Modding=<br />
Dungeon rooms are moddable with the lotpack system, see {{file|/lots/packs/vanilla.txt}} for details. Blank dungeon pieces are provided in /lots/packs/vanilla (for example dungeon_22.lot, dungeon_21.lot).<br />
<br />
=See Also=<br />
[https://www.youtube.com/watch?v=2g7qVoMo3OE Dev Youtube: Gunplay and Dungeons!]<br />
[https://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-17-gunplay-improvements-new-dungeon-system Dev Diary 17: Gunplay and Dungeons!]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Control_Points&diff=724Control Points2018-09-25T02:20:00Z<p>SnapperTheTwig: </p>
<hr />
<div>{{version|1.3.3}}<br />
[[File:Cpa_supply.jpg|300px|thumb|Right|The Supply Depot]]<br />
[[File:cpa_garden2.jpg|300px|thumb|Right|The Botanic Garden]]<br />
[[File:Cpa_commandcentre.jpg|300px|thumb|Right|The Communications Centre]]<br />
<br />
Control points are like a cross between [[Bandit Base|Bandit Bases]] and [[Reward Buildings|Special Buildings]]. Instead of being a place that you raid for loot, Control Points give you a static bonus.<br />
The Supply Depot<br />
Above: The Supply Depot<br />
<br />
The game currently has 5 control points:<br />
<br />
* Old Parliament (-20% Racketeering Cost, -10% Zoning Cost). This building naturally spawns near spawn.<br />
* Supply Depot (-10% Construction Cost, +2 Ind Desirability). This building spawns in industrial areas.<br />
* Botanic Garden (+50% Aggression Decay Rate, +2 Res/Com/Off Desirability). This building spawns in residential areas.<br />
* Communications Centre (+1 Goon Command Limit, +10% Goon Atk/Def). This building spawns randomly on the map<br />
* Strategic Bunker (+2 Attack, +2 Defence, +200% cash from killed bandits). This building spawns randomly on the map<br />
<br />
If a Control Point doesn't exist on the map can be constructed from the Special Buildings menu. This is so you don't have to start a new game to play with them. You can also bulldoze existing Control Points under your control and relocate them if you wish.<br />
<br />
Control Points level up whenever they get captured by a hostile player, up to level 5. Leveling them up makes the defenders stronger, like in a bandit base. You can also abandon a control point so that an ally can take control of it.<br />
Above: The Communications Centre. A bandit base that spawns<br />
<br />
Control Points act as a point of conflict in Multiplayer. You can capture control points even if you are at peace with the owner, or they are offline. Finally, AI factions will try to capture control points, even in Turf mode!<br />
<br />
=Modding=<br />
See {{file|/scripts/common/special_buildings.lua}} for implementation details<br />
<br />
=See Also=<br />
[http://www.indiedb.com/games/voxel-turf/news/dev-diary-16-control-points-vehicle-storage-base-escapes-renamable-bases Dev Diary 16: Control Points, Vehicle Storage, Base Escapes, Renameable Bases]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Control_Points&diff=723Control Points2018-09-25T02:18:58Z<p>SnapperTheTwig: </p>
<hr />
<div>[[File:Cpa_supply.jpg|300px|thumb|Right|The Supply Depot]]<br />
[[File:cpa_garden2.jpg|300px|thumb|Right|The Botanic Garden]]<br />
[[File:Cpa_commandcentre.jpg|300px|thumb|Right|The Communications Centre]]<br />
<br />
Control points are like a cross between [[Bandit Base|Bandit Bases]] and [[Reward Buildings|Special Buildings]]. Instead of being a place that you raid for loot, Control Points give you a static bonus.<br />
The Supply Depot<br />
Above: The Supply Depot<br />
<br />
The game currently has 5 control points:<br />
<br />
* Old Parliament (-20% Racketeering Cost, -10% Zoning Cost). This building naturally spawns near spawn.<br />
* Supply Depot (-10% Construction Cost, +2 Ind Desirability). This building spawns in industrial areas.<br />
* Botanic Garden (+50% Aggression Decay Rate, +2 Res/Com/Off Desirability). This building spawns in residential areas.<br />
* Communications Centre (+1 Goon Command Limit, +10% Goon Atk/Def). This building spawns randomly on the map<br />
* Strategic Bunker (+2 Attack, +2 Defence, +200% cash from killed bandits). This building spawns randomly on the map<br />
<br />
If a Control Point doesn't exist on the map can be constructed from the Special Buildings menu. This is so you don't have to start a new game to play with them. You can also bulldoze existing Control Points under your control and relocate them if you wish.<br />
<br />
Control Points level up whenever they get captured by a hostile player, up to level 5. Leveling them up makes the defenders stronger, like in a bandit base. You can also abandon a control point so that an ally can take control of it.<br />
Above: The Communications Centre. A bandit base that spawns<br />
<br />
Control Points act as a point of conflict in Multiplayer. You can capture control points even if you are at peace with the owner, or they are offline. Finally, AI factions will try to capture control points, even in Turf mode!<br />
<br />
=Modding=<br />
See {{file|/scripts/common/special_buildings.lua}} for implementation details<br />
<br />
=See Also=<br />
[http://www.indiedb.com/games/voxel-turf/news/dev-diary-16-control-points-vehicle-storage-base-escapes-renamable-bases Dev Diary 16: Control Points, Vehicle Storage, Base Escapes, Renameable Bases]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Control_Points&diff=722Control Points2018-09-25T02:18:37Z<p>SnapperTheTwig: Created page with "The Supply Depot The Botanic Garden File:Cpa_commandcentre.jpg|300px|thumb|Right|The Com..."</p>
<hr />
<div>[[File:Cpa_supply.jpg|300px|thumb|Right|The Supply Depot]]<br />
[[File:cpa_garden2.jpg|300px|thumb|Right|The Botanic Garden]]<br />
[[File:Cpa_commandcentre.jpg|300px|thumb|Right|The Communications Centre]]<br />
<br />
Control points are like a cross between [[Bandit Base|Bandit Bases]] and [[Reward Buildings|Special Buildings]]. Instead of being a place that you raid for loot, Control Points give you a static bonus.<br />
The Supply Depot<br />
Above: The Supply Depot<br />
<br />
The game currently has 5 control points:<br />
<br />
* Old Parliament (-20% Racketeering Cost, -10% Zoning Cost). This building naturally spawns near spawn.<br />
* Supply Depot (-10% Construction Cost, +2 Ind Desirability). This building spawns in industrial areas.<br />
* Botanic Garden (+50% Aggression Decay Rate, +2 Res/Com/Off Desirability). This building spawns in residential areas.<br />
* Communications Centre (+1 Goon Command Limit, +10% Goon Atk/Def). This building spawns randomly on the map<br />
* Strategic Bunker (+2 Attack, +2 Defence, +200% cash from killed bandits). This building spawns randomly on the map<br />
<br />
If a Control Point doesn't exist on the map can be constructed from the Special Buildings menu. This is so you don't have to start a new game to play with them. You can also bulldoze existing Control Points under your control and relocate them if you wish.<br />
<br />
Control Points level up whenever they get captured by a hostile player, up to level 5. Leveling them up makes the defenders stronger, like in a bandit base. You can also abandon a control point so that an ally can take control of it.<br />
Above: The Communications Centre. A bandit base that spawns<br />
<br />
Control Points act as a point of conflict in Multiplayer. You can capture control points even if you are at peace with the owner, or they are offline. Finally, AI factions will try to capture control points, even in Turf mode!<br />
<br />
=Modding=<br />
See {{file/scripts/common/special_buildings.lua}} for implementation details<br />
<br />
=See Also=<br />
[http://www.indiedb.com/games/voxel-turf/news/dev-diary-16-control-points-vehicle-storage-base-escapes-renamable-bases Dev Diary 16: Control Points, Vehicle Storage, Base Escapes, Renameable Bases]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=File:Cpa_commandcentre.jpg&diff=721File:Cpa commandcentre.jpg2018-09-25T02:17:16Z<p>SnapperTheTwig: </p>
<hr />
<div></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=File:Cpa_garden2.jpg&diff=720File:Cpa garden2.jpg2018-09-25T02:16:42Z<p>SnapperTheTwig: </p>
<hr />
<div></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=File:Cpa_supply.jpg&diff=719File:Cpa supply.jpg2018-09-25T02:09:29Z<p>SnapperTheTwig: </p>
<hr />
<div></div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=Dungeons&diff=718Dungeons2018-09-25T01:35:42Z<p>SnapperTheTwig: Created page with "A Dungeon Entrance Dungeons are mid-late game content that consist of large networks of rooms in the hills. They are initially hid..."</p>
<hr />
<div>[[File:Dgun_entrance.jpg|300px|thumb|right|A Dungeon Entrance]]<br />
Dungeons are mid-late game content that consist of large networks of rooms in the hills. They are initially hidden on the map and must be discovered. Entrances to dungeons are marked as fortification level 1 bandit bases and can be found as giant stone spires in the world, and individual dungeon rooms are disguised as hills lots.<br />
<br />
Bandits in dungeons are stronger than the bandit base inhabitants. They start at fortification level 6, and progress to level 10. The number of dungeons on the map is dependent on the number of hills lots on the map with a maximum of 5 spawning, space permitting. Each dungeon is progressively bigger than the last.<br />
[[File:Dgun_room.jpg|300px|thumb|right|A 2x2 Dungeon Room]]<br />
<br />
In each dungeon there is a Bandit King who functions as the boss, who drops a lot of valuable items + a key to the next dungeon, and perhaps more importantly, they drop a crown you can wear! If you are playing in multiplayer then they'll drop multiple keys.<br />
<br />
While in a dungeon you cannot tele-buy items, so stock up on healing items first! I firmly recommend that you level up a bit first (level 10 is a good guide for the first one), and get a few combat perks + silver or gold tier weapons and mods.<br />
<br />
==Entering a Dungeon==<br />
You can enter the spire at any time, but to be able to capture dungeon rooms you need a relevant key to disable the shields between rooms. To get the key for the first dungeon, the Blue Dungeon Key, you can do one of three things:<br />
<br />
* You can take the "Dungeon Debts" mission and pay the Schemer $50k for one. This mission will spawn once you reach level 10.<br />
* You can take the Griever's mission to kill Blasty McSurprise, Blasty himself drops a Blue Dungeon Key when he dies.<br />
* Blue Dungeon Keys are rare loot spawns in Bandit Bases.<br />
<br />
=Modding=<br />
Dungeon rooms are moddable with the lotpack system, see {{file|/lots/packs/vanilla.txt}} for details. Blank dungeon pieces are provided in /lots/packs/vanilla (for example dungeon_22.lot, dungeon_21.lot).<br />
<br />
=See Also=<br />
[https://www.youtube.com/watch?v=2g7qVoMo3OE Dev Youtube: Gunplay and Dungeons!]<br />
[https://www.indiedb.com/games/voxel-turf/news/watch-dev-diary-17-gunplay-improvements-new-dungeon-system Dev Diary 17: Gunplay and Dungeons!]</div>SnapperTheTwighttp://wiki.voxelturf.net/mediawiki//index.php?title=File:Dgun_room.jpg&diff=717File:Dgun room.jpg2018-09-25T01:34:32Z<p>SnapperTheTwig: A dungeon room</p>
<hr />
<div>A dungeon room</div>SnapperTheTwig