So, you can remove trees, but you cant add more... ? I'll try this and see how it goes, i already removed the smog myself from game and it improved my fps by quite a lot.
Thanks.
Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.
Die Registrierung und Nutzung ist selbstverständlich kostenlos.
Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.
Das Team der Transport-Fever Community
So, you can remove trees, but you cant add more... ? I'll try this and see how it goes, i already removed the smog myself from game and it improved my fps by quite a lot.
Thanks.
Hi, having some issues with timeless mod, i cant quite figure out what is wrong, i can install it as usual but it seems it's not activating.
This is the code from be5_6 tram mdl, it seems it's not changing yearfrom and yearto.
--[[ <MOD_ID:timeless_mod.lua TARGET_BUILD:4587>
Modified by timeless_mod.lua
Use timeless_mod.uninstall() to remove this mod
--]]
require "timeless_mod_config"
--[[ <MOD_ID:cost_mod.lua BUILD_TARGET:4587>
Modified by cost_mod.lua
Use cost_mod("uninstall") to remove this mod
--]]
require "cost_mod_config"
function data()
return {
boundingInfo = {
bbMax = {
17.189210891724, 1.1466519832611, 4.7869329452515,
},
bbMin = {
-17.189210891724, -1.396271944046, -0.05799201130867,
},
},
collider = {
params = {
},
type = "MESH",
},
lods = {
{
animations = {
},
children = {
{
id = "vehicle/tram/be5_6_lod_0_connector.grp",
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 8.6990995407104, 0, 0, 1,
},
type = "GROUP",
}, {
id = "vehicle/tram/be5_6_lod_0_connector.grp",
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.979199886322, 0, 0, 1,
},
type = "GROUP",
}, {
id = "vehicle/tram/be5_6_lod_0_connector.grp",
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.9839000701904, 0, 0, 1,
},
type = "GROUP",
}, {
id = "vehicle/tram/be5_6_lod_0_connector.grp",
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -8.7013998031616, 0, 0, 1,
},
type = "GROUP",
}, {
id = "vehicle/tram/be5_6_lod_0_mid_back.grp",
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.8449997901917, 0, 0, 1,
},
type = "GROUP",
}, {
id = "vehicle/tram/be5_6_lod_0_mid_front.grp",
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.8449997901917, 0, 0, 1,
},
type = "GROUP",
}, {
id = "vehicle/tram/be5_6_lod_0_back.grp",
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -11.701299667358, 0, 0, 1,
},
type = "GROUP",
}, {
id = "vehicle/tram/be5_6_lod_0_mid.grp",
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1,
},
type = "GROUP",
}, {
id = "vehicle/tram/be5_6_lod_0_front.grp",
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 11.701299667358, 0, 0, 1,
},
type = "GROUP",
},
},
events = {
open_all_doors = {
[5] = {
forward = true,
name = "open_all_doors",
},
[6] = {
forward = true,
name = "open_all_doors",
},
[7] = {
forward = true,
name = "open_all_doors",
},
[8] = {
forward = true,
name = "open_all_doors",
},
[9] = {
forward = true,
name = "open_all_doors",
},
},
close_all_doors = {
[5] = {
forward = false,
name = "open_all_doors",
},
[6] = {
forward = false,
name = "open_all_doors",
},
[7] = {
forward = false,
name = "open_all_doors",
},
[8] = {
forward = false,
name = "open_all_doors",
},
[9] = {
forward = false,
name = "open_all_doors",
},
},
},
matConfigs = {
{
0, 0, 0, 0, 0, 0, 0, 0, 0,
},
},
static = false,
visibleFrom = 0,
visibleTo = 1240,
},
},
metadata = {
description = {
name = _("Be 5/6 Cobra"),
description = _(
"The first completely low floor tram runs \n"..
"through the city like a snake \n"..
"with its four joints. \n" ..
"This gave it the nickname \"Cobra\".")
},
availability = {
yearFrom = getFromYear(2001),
-- yearTo = getToYear(2100),
},
cost = {
price = 212000 * TramFactor,
},
maintenance = {
lifespan = getLifespan(40),
runningCosts = 60000 * MaintenanceFactor,
},
railVehicle = {
configs = {
{
axles = {
"vehicle/tram/be5_6/be5_6_lod_0_w1.msh",
},
fakeBogies = {
{
group = 1,
offset = -2.0452001094818,
position = 11.701299667358,
}, {
group = 1,
offset = 1.8502999544144,
position = 5.8449997901917,
}, {
group = 3,
offset = -1.8006000518799,
position = 5.8449997901917,
}, {
group = 3,
offset = 2.0186998844147,
position = 0,
}, {
group = 5,
offset = -2.0269000530243,
position = 0,
}, {
group = 5,
offset = 1.8006000518799,
position = -5.8449997901917,
}, {
group = 7,
offset = -1.8502999544144,
position = -5.8449997901917,
}, {
group = 7,
offset = 2.039400100708,
position = -11.701299667358,
}, {
group = 9,
offset = 0,
position = -5.8449997901917,
}, {
group = 17,
offset = 0,
position = 5.8449997901917,
},
},
},
},
engines = {
{
power = 625,
tractiveEffort = 80,
type = "ELECTRIC",
},
},
soundSet = {
horn = "",
name = "tram_modern",
},
topSpeed = 70,
weight = 39.200000762939,
},
transportVehicle = {
capacities = {
{
capacity = 96,
type = "PASSENGERS",
},
},
carrier = "TRAM",
},
},
}
end
Anyone having this issue ? And if were at it, anyone having the previous version of timeless mod ?
EDIT: Also the code from timeless_mod lua file. Please tell me if there's anything wrong with this if you know.
--[[ Timeless mod install/uninstal script
INSTALL
1. Check that the rootdir points to your Train Fever/res map.
2. Load the script and run timeless_mod.install()
3. A new file: timeless_mod_config.lua has been created in your /res/script folder.
UNINSTALL
1. Check that the rootdir points to your Train Fever/res map.
2. Load the script and run timeless_mod.uninstall()
--]]
-- Path to Trainfever res map
local rootdir = "D:/Jocuri/Steam/SteamApps/common/Train Fever/res/"
local target = 4587
local minor = 2.0
local function getVersion() return target..'.'..minor end
-- Files to apply this mod to
local TFPath = {
Bridge = { Path = rootdir.."config/bridge/", Filter = ".lua" },
Street = { Path = rootdir.."config/street/", Filter = ".lua" },
TrainStation = { Path = rootdir.."config/train_station/", Filter = ".lua" },
Depot = { Path = rootdir.."models/model/depot/", Filter = ".mdl" },
Signal = { Path = rootdir.."models/model/railroad/", Filter = ".mdl" },
BusStation = { Path = rootdir.."models/model/station/bus/", Filter = ".mdl" },
CargoStation = { Path = rootdir.."models/model/station/road/", Filter = ".mdl" },
TramStation = { Path = rootdir.."models/model/station/tram/", Filter = ".mdl" },
Bus = { Path = rootdir.."models/model/vehicle/bus/", Filter = ".mdl" },
Train = { Path = rootdir.."models/model/vehicle/train/", Filter =".mdl" },
Tram = { Path = rootdir.."models/model/vehicle/tram/", Filter = ".mdl" },
Truck = { Path = rootdir.."models/model/vehicle/truck/", Filter = ".mdl" },
Waggon = { Path = rootdir.."models/model/vehicle/waggon/", Filter = ".mdl" },
Car = { Path = rootdir.."models/model/vehicle/car/", Filter = ".mdl" },
People = { Path = rootdir.."models/model/", Filter = ".mdl" }
}
local function oldUninstallScript (script)
local buff
local c
buff,c1 = script:gsub("%s*%*%s*Timeless","")
buff,c2 = buff:gsub("%s*%*%s*Endless","")
c = (c1+c2)
return buff,(c>0)
end
local function InstallScript (script)
local buff
local c
from = script:match("yearFrom%s*=%s*(%d*)")
to = script:match("yearTo%s*=%s*(%d*)")
if from == nil then from=0 end
if to == nil then to=0 end
buff,c1 = script:gsub("yearFrom%s*=%s(%d*)","yearFrom = getFromYear(%1)")
buff,c2 = buff:gsub("yearTo%s*=%s(%d*)","yearTo = getToYear(%1)")
buff,c3 = buff:gsub("lifespan%s*=%s*(%d*)","lifespan = getLifespan(%1)")
c = (c1+c2+c3)
if c > 0 then
buff = [=[
--[[ <MOD_ID:timeless_mod.lua TARGET_BUILD:]=]..target..[=[>
Modified by timeless_mod.lua
Use timeless_mod.uninstall() to remove this mod
--]]
require "timeless_mod_config"
]=]..buff
end
return buff,(c > 0)
end
local function UninstallScript (script)
local buff
local c
buff,c1 = oldUninstallScript(script)
buff,c1 = buff:gsub('--%[%[%s*<%s*MOD_ID%s*:%s*timeless_mod%.lua.-%]%]',"")
buff,c2 = buff:gsub('%s*require%s*"timeless_mod_config"%s*',"")
buff,c3 = buff:gsub("%s*getFromYear%s*%(%s*(%d*)%s*%)"," %1")
buff,c3 = buff:gsub("%s*getToYear%s*%(%s*(%d*)%s*%)"," %1")
buff,c4 = buff:gsub("%s*getLifespan%s*%(%s*(%d*)%s*%)"," %1")
c = (c1+c2+c3+c4)
return buff,(c>0)
end
local Actions = { ["install"] = InstallScript, ["uninstall"] = UninstallScript }
local UTF8BOM = "\xEF\xBB\xBF"
local function removeBOM(script) if script:byte(1) == 0xEF and script:byte(2) == 0xBB and script:byte(3) == 0xBF then script = script:sub(4) end return script end
local function isBOM(script)
for n=1,#script-3 do
if script:byte(n) == 0xEF and script:byte(n+1) == 0xBB and script:byte(n+2) == 0xBF then
return true;
end
end
return false;
end
local function DoAction(mode,silent)
local touch = {}
if tf == nil then tf = tfgm end
if tf == nil then
print("*** ERROR #1\nYou need the Train Fever Extended Lua console to run this script")
return {
list = {},
status = 1
}
end
if tf.mode == "console" then
tf.rootdir = rootdir
else
rootdir = tf.rootdir
end
if mode == "install" then
DoAction("uninstall",true)
msg = "Installing"
else
msg = "Removing mod"
end
local mod_config = [=[
--[[ timeless_mod configuration file for Train Fever build ]=]..target..[=[.
Script version ]=]..target..'.'..minor..[=[
From
Specify the year from when vehicles should be available according to the original timeline.
All vehicles before this year are imediatley available.
To enable all vehiles at once, set this to 0.
To
The end year when vehiles should be available. All vehicles after this year will never be seen.
If To is higher than From, also all vehicles before From isn't available either, only the vehicles between From and To.
Set this to 0, Disable or Infinite to reome the "To year" limit.
Ageing
This is a factor to control how fast the vehiles will age.
Example:
0, Disable or Infinite = the lifetime is infinite
0.5 = 50% the lifetime is 50% shorter (half)
1.0 = 100% the life time is unchanged
2.0 = 200% the lifetime is doubled
If a From and To ear is specified, you will play with vehicles only available during this time period.
However, they will always be available, even after the To year has passed.
--]]
-- Constant helpers - don't touch
local Enable = 1
local Disable = 0
local Infinite = 0
-- Timeless configuration parameters - Do your configuration here
local From = 0
local To = Infinite
local Ageing = Disable
-- Utils - don't touch
function getFromYear(year) if To < From then To = 0 if year < From then year = 0 end else if year < From then year = 999999 end end return year end
function getToYear (year) if To < From then year = 0 else if year <= To then year = 0 end if year > To then year = 999999 end end return year end
function getLifespan(year) return year * Ageing end
]=]
if not silent then print('Train fever path (rootdir):\n'..rootdir) end
for modifier,object in pairs(TFPath) do
if object.Path ~= "" then
if not silent then print("\n"..msg.." "..modifier..":") end
list = tf.dir(object.Path,object.Filter)
for n=1,#list do
if not silent then io.write(" "..list[n]) end
local file = assert(io.open(object.Path..list[n],"r"))
local script = file:read("*a")
file:close()
bom = isBOM(script)
script,c = Actions[mode](removeBOM(script))
file = assert(io.open(object.Path..list[n],"w"))
if bom then
if not silent then io.write("write UTF8 BOM") end
script = UTF8BOM..script
end
file:write(script)
file:close()
if c then
if not silent then print("") end
table.insert(touch,object.Path..list[n])
else
local indent = string.rep(".",35-#list[n])
if not silent then print(indent.."[skipped]") end
end
end
end
end
local key = 'y'
if mode == "install" then
print("\nGenerate timeless_mod_config...")
if tf.exists(rootdir.."scripts/timeless_mod_config.lua") ~= 0 then
if tf.mode == 'console' then
io.write("There is already a timeless configuration file installed.\nDo you want to replace it? [Y/n] > \x07")
key = io.read("*line")
end
end
if key:lower() == 'y' or key == '' then
file = io.open(rootdir.."scripts/timeless_mod_config.lua","w")
file:write(mod_config)
file:close()
print("\ntimeless_mod installed in\n"..rootdir.."\n")
end
print(#touch.." files was modified.")
else
if not silent then
if tf.mode == 'console' then
io.write("Do you want to remove the timeless_cost_configuration file as well? [Y/n] > \x07")
key = io.read("*line")
end
if key:lower() == 'y' or key == '' then
os.remove(rootdir.."scripts/timeless_mod_config.lua")
end
print("\ntimeless_mod uninstalled from\n"..rootdir.."\n")
print(#touch.." files was restored.")
end
package.loaded.timeless_mod = nil
end
return {
list = touch,
status = 0
}
end
timeless_mod = {
version = function() print(getVersion()) end,
install = function(lang) print("Timeless mod version "..getVersion()) return DoAction("install",lang,false) end,
uninstall = function(lang) print("Timeless mod version "..getVersion()) return DoAction("uninstall",lang,false) end
}