NIMBY Rails

NIMBY Rails

This topic has been locked
Weird and Wry  [developer] Aug 25, 2022 @ 8:55am
Beta @ (no beta) [2022/10/31]
1.5 development is finished and the default game version is now 1.5.41.

--- 1.5.41
- Show warning icon in line listing when a line contains one or more invalid paths
- Fix: saves containing lines with invalid paths could take a very long time to load. Loading time will still be longer than normal in 1.5.41, it is recommended to never save games containing lines with invalid paths and assigned trains

--- 1.5.40
- Fix: rare crasher triggered by trains ending runs with deleted lines
- Fix: disable secondary signal and platform pick mode if the selected stop in a line service is auto copy from parent line
- Fix: correct track offset input box tooltip to 0/100m range. The old -1000/1000m range never applied and it was always clamped to 0/100m.

--- 1.5.39
- Fix: missing save support for some 1.5.38 features

--- 1.5.38
- Bulk editor option for selection translations and rotations with manual input of displacement and angle
- Bulk editor option for snapping selected objects into a custom grid. Since it is impossible to map an uniform grid over the world, the grid will have the spacing set in the tool but the 0,0 point is left undefined on purpose. Do not rely on this tool for positioning, only use it for rearranging selections.
- Duplicate the current track editor selection with Ctrl-B exactly on top of the existing selection
- Option in company panel to issue an intervention to all stale trains
- Line services can now have their own tags. The tag set of the parent is also added to the trains assigned to the line service.
- Company button to refresh all line timings
- Auto mode for service line color and prices, to toggle an auto copy from the parent line
- Fix: zero length tracks should be selectable

--- 1.3.37
- Fix: orphaned copier trains disappear in some train listing modes
- Fix: crash when trying to clone a train as a copier

--- 1.5.36
- Restore "no line" category for train list in line mode and line tags mode
- Add line level times as a tooltip in the run panel
- Fix: pax pathfinding must be aware of trains being able to skip a sequence of stops in the same station
- Fix: two crashers in the new train and line drop downs
- Fix: copier trains sometimes failed to generate a run despite having plenty of allocated time
- Fix: trains could disappear in tracks perfectly aligned with parallels or meridians

--- 1.5.35
- Line services: keep multiple versions of the same line with disabled stops and private timing and stop platforms. Line services work like normal lines for the train order system, but at the line editor level, they cut down the effort required to keep a set of similar lines for specific scheduling purposes. Line services automatically replicate their accounting on their parent line.
- Use the full featured listings for the lines and trains drop downs in the train editor, including support for grouping modes
- Clicking on the map icons for line stops while a line is being edited now selects the corresponding line stop
- Compact mode for line and train listings
- Show train groups as collapsible category under the parent train
- Show all overlapping trains when hovering over a conflicted run in stacked mode in the platforms tab
- When cloning trains with custom user tags, and also changing the train configuration in some way while purchasing it, keep the user tags assigned to the cloned train
- Add recently edited trains in the train editor to the train picker recent list
- Fix: closing main menu with esc while in-game should cleanup the potentially open modal messages
- Fix: cloning a manual orders train must refresh their internal orders ID to avoid errors in the orders editor

--- 1.5.34
- New button to set an order start time so the previous order last run has zero pad time. This is a manual order editor button, not a permanent or automatic setting
- Show stop departures as a horizontal line when zoomed into a train run table, including the actual time of departure when zoom allows it
- Show small rectangle on top of departure lines to represent stop wait time
- Highlight current train destination stop when departures are displayed in a train run table
- Add and enable by default a realtime follow mode to line timetable run table
- Fix: pax unloading at stations were accounting to the current (so next stop) train line, not the line they used to reach the station
- Fix: line timetable run table was not showing the current train status

--- 1.5.33
- Optional single column mode in platform tab in the station window, overlapping all line stops in the same column for a given platform
- Optional conflict checker in platform tab in the station window, highlighting line stops which overlap with other line stops in the same platform. This feature is not aware of secondary platforms.
- Add new realtime stat for train lateness estimation
- Highlight current stop and leg on the map while a line stop is selected in the line editor
- Add button to jump to parent train from an auto copy train
- Disable run skipping when the train is very late
- With run skipping being disabled, it is now possible to chain up to 5 runs in a single step with the "matching destination skips stop" feature
- Fix: remove broken check in the lost pax finder which was causing pax to leave the train too soon, specially for longer distance trains
- Fix: the station destination cache should not be serialized in saved games. This fixes bloated save files and slowdowns when saving the game.
- Fix: past 1.5 builds had bugs which allowed deleted and edited trains to remain as part of the set of trains referenced by auto lines and train groups. 1.5.33 and later will cleanup these bad references when loading the game.
- Fix: missing or incorrect line drawing on tracks with branches

--- 1.5.32
- Custom leg timing mode. Players can now manually input a leg time in the line editor. The game then tries to find a leg cruise speed which perfectly matches the custom leg time, by performing iterative optimization over repeated simulations of the leg. This process is slow and the number of approximations the game makes is limited for performance reasons, so it is possible the game won't be capable of matching a given time in every circumstance.
- New late train estimation. Trains now use an heuristic based on the remaining leg distance and the cruise speed to determine if they are late. This heuristic is strictly optimistic to avoid false positives, but it's still much better than the old system which only determined a late train by the time of day.
- Make the track editor flip command also work on parented parallel tracks
- Re-enable stop index fixup based on the current destination, but only for stale trains. This feature is defeated by repeated line main platforms and secondary platforms.
- When clicking the train counter in the line editor, prefer to select manual orders trains
- Fix: mothballed trains should not give alert warnings
- Fix: some UI text still referenced "platform letters" and "arrive by"
- Fix: new pax should not count for leg time or total time real time asset stats

--- 1.5.31
- Fix: wrong position of newly added stations stop

--- 1.5.30
- Fix: bulk order shifting of less than 24h should be able to rotate the order day mask, like >24h does
- Fix: line editor platform picking should not accept clicks on non interactive arrow buttons
- Fix: line editor main platform change was not allowing duplicated line main platforms
- Fix: track bulk edit "make straight" should work exactly as the regular track property change

--- 1.5.29
- Allow to repeat the same main platform multiple times in a single line (press Alt while picking the main platform)
- Add mass train intervention button in Company panel
- Station option to show its map label as full, name plus pax, name only, icon only and dot only
- Small station dots are now clickable
- Add keep straight and station label mode to track bulk edit
- Reorganize Company to add Loans and Options tabs
- New Company options for the default new station label option and parallel track offset
- Fix: selling trains was not properly rebuilding timetables for auto managed train groups
- Fix: flat train listings should not have categories

--- 1.5.28
- Trains on a stale run will now have an automatic intervention issued when they reach the last stop of their stale run, for free
- Reduce manual intervention fixed price to 50K, and pay no compensation to pax
- When a train intervention is issued, relocate train pax to their next stop, for free. If their next stop station is full apply the usual full station rules.
- Blink the train icon red with an alert icon when the train is stale
- Fix: detection of overlapping stops on run boundaries did not work properly if the train was on a secondary platform
- Fix: train stop count down does not count down properly at 1x and 10x sim speeds for long stops
- Fix: line length without a reference train was not measured properly

--- 1.5.27
- Fix: modal alerts cannot be closed

--- 1.5.26
- Remove legacy depots from the game. Existing depots are converted into normal tracks. Since normal tracks cannot have the "keep straight" flag, some tracks and buildings in and around the old depots might need some fixing or deletions.
- Add button to train group tab to clone the train as a copier train
- Add section to train group tab to migrate all auto run trains of a line into copier trains
- Allow next stop grouping for pax in the station info window
- Add next stop and waiting stop columns to more tables in the station info window
- Make train and station info windows have a larger size by default if the game window resolution is above certain threshold
- Set drop down width so it always fits the widest text label
- Set drop down height so it takes as much vertical space as it fits on the screen when required

--- 1.5.25
- Single day runs view in the run tab of the train info window. By default it autoscrolls with the current time, but on scrolling or clicking on a run it allows to navigate to any day and visualize any of the train runs.
- Show the five more recently selected lines and trains in the drop downs of the order and train editor
- Separate train filtering options (all, alerts, mothballed, manual orders) from train grouping (flat, lines, lines tags, tags, models) in train listing
- Change default platform numbering to (maybe) be less random
- Fix: crash in lines drop down in orders editor when trains reference deleted lines
- Fix: references between copier trains and manual trains were not properly cleared when selling trains
- Fix: handle possible errors in existing saves with invalid references between copier trains and manual trains
- Fix: when the train run generator picks a pad wait stop, if the line is in minimal mode, or all stops are enabled as custom waiters, ignore the stop custom wait option

--- 1.5.24
- Change default platform names to a number and a letter for the closest cardinal direction
- When clicking on a run in the orders editor, automatically select its generating order
- Restore multi day shift in bulk order editor
- Keep line stop drop down open after making a selection in the platforms tab of the station window. Use the funnel button or click outside the drop down to close it.
- Fix: train window run info tab must use the train orders timezone
- Fix: runs were not properly storing the pad wait stop in some cases
- Fix: avoid setting pad waits on line pass stops
- Fix: trains could teleport for some distance in some circumstances involving bounces and signals
- Fix: hide run panel when selecting a different train in the train editor

--- 1.5.23
- Multi day orders. Train orders can now be selected to apply to more than one day of the week. Newly created orders default to apply to all days of the week.
- Manual daily orders mode has been removed. Saves with trains in daily manual mode will have their orders automatically converted to apply to all days of the week.
- Pick mode for main stop platform in the line editor stop panel

--- 1.5.22
- Show the current train run in a new tab in the train info window
- Bold the current run of the train in the orders run table if the train is not stale
- Bold the current destination in the run panel of a train if the train is not stale
- When a run includes a padding wait, change the symbol shown between arrival and departure in the run panel, with tooltip
- Use the lowest line stop marked as custom wait stop when a run needs to pad some wait time. If the line run does not include any such stop, fall back to using the last stop
- Add bulk track editor option to remove track parallel constraint
- Fix: train manual shift copy mode setting was not being saved
- Fix: purchasing trains in auto copy mode should auto register them with their parent train

--- 1.5.21
- Train groups: manual orders trains now have a new tab in the train editor, Group. In this tab it is possible to automatically configure a time shift for all trains which are copying the selected train. A fixed interval, an even interval for a given duration, and an auto interval for a given line are the possible modes. It is also possible to disable this shifting for non-pax service line orders.
- Auto copy trains can now opt into being managed by their parent train group settings. This is the default for new trains when set to auto copy. Existing trains are set to manual, private shifting, to respect existing player edited values.
- Daily orders mode for manual trains. In this mode, manual orders are automatically replicated to all days of the week. The inputs and labels for the day of the week disappear from the order editing interface. This is now the default mode for new manual order trains.
- Options in the company panel to sell all trains and delete all lines
- Import 1.4 lines and make new lines always in weekly period mode by default
- Change order setting label from "Arrive by" to "Arrive no later than". There are no functional changes.
- Fix some display bugs in the train run table
- Fix: new pax and transfer pax realtime stats were broken

--- 1.5.20
- Line auto duration: lines now have 3 duration modes: minimal, fit period and custom. Minimal sets the line duration to the lowest possible value. Custom works like the previously introduced custom duration mode. Fit period allows to specify a period (day, week or custom), and the line timing logic will automatically pick the smallest divisor for that period which fits the line, adding extra wait times on the designated stops.
- Extra wait designated stops can now be set to manually picking them (the 1.5.19 behavior), or a single setting to enable waits on all of them.
- 1.4 saves imported with 1.5.20 will have all of their lines set to Fit period of day or week (depending on the minimal line duration), with waits enabled in all stops. Games saved between 1.5.1 to 1.5.19 will have their lines duration set to minimal or custom, depending if they had a custom duration set or not. New lines created with 1.5.20 default to Fit period, day, all stops extra wait.
- Create depot line button in line editor. Using this button instead of the normal create line button, will automatically set the right options for a depot line. Unlike the normal button it will also automatically start the stop picking mode, and end it after selecting just one stop, allowing to create depot lines in two clicks.
- Show alert icon on orders when they have an error which prevents them from generating runs, and give it a tooltip with information on the error
- Add one more level of zoom out for order tables
- Fix: lost pax checker was resetting all pax, not just new pax, causing the 3h station limit to have no effect in some cases
- Fix: cloning a train should select the composition of the train. If the underlying mod has changed or moved compositions this behavior might be incorrect.
- Fix: show stop insertion point in line stop listing even when line is empty
- Fix: better handling of run generation corner cases involving orders with their exit stop set to the line first stop, or set to the same enter and exit stop

--- 1.5.19
- Fix: crash when using lines which have no timing information due to not having any train assigned

--- 1.5.18
NOTE: if you saved your game in 1.5.17 after editing orders to add enter/exit options, you will need to add them again in 1.5.18
- Fix: missing save data for orders with enter/exit stops
- Fix: single run orders on single stop lines were inserting an extra, useless run

--- 1.5.17
- Enter/exit stop support for orders and runs. It is now possible to pick an enter and exit stop for orders, different from the default first and last line stop. Runs generated from these orders will start at the enter stop for the first run, and end at the exit stop for the final run of the order. Runs between these two will run the full line.
- Run pad waiting will be done at the exit stop of the last run of an order, even if that stop is not the final stop of the line
- Improve performance of bulk track changes when the selection includes two or more station platforms
- Fix: pad waits were not done properly when the line ended at a waypoint
- Fix: the platforms view in the station window was not displaying pad waits
- Fix: waypoints should not allow to pick secondary signals
- Fix: glue path length should not be 0, to allow for better train speed control
- Fix: if a train is unspawned and its current run if set to a closed line, do not try to spawn it. Spawned trains having their line closed will remain spawned.

--- 1.5.16
- New trains order mode: mothballed. Mothballed trains have no orders, are always despawned and do not try to respawn in any way. Use the mothballed mode to store trains you have no use for but don't want to sell.
- Replace "in depot" train list filter with "mothballed"
- When importing 1.4 saves, if a train has no line orders, set it to mothballed mode
- When a train changes into a new run, and the location of the train matches exactly with the main or one of the secondary platforms of the first stop of the next run, immediately change into the next stop, and do not let the train initiate a new path.
- Train runs are now stored in compressed way, to reduce the impact of future features which will require adding more data to runs. This change has no impact on gameplay or UI in any way, but needs to be tested before more orders and scheduling features are implemented.
- Fix: pax pathfinder loop detection was not properly avoiding loops when these involved two different runs

--- 1.5.15
- Rename "Full" line service level to "Passenger service" and "Only trains" to "Technical maneuvers"
- Black hole stop waits for technical lines: when a line is in "Technical maneuvers" service level, trains are allowed to wait at stations by despawning and being respawn when the wait ends. This behavior is enabled by default for stops on main platforms, and never enabled for secondary platforms. Trains running lines in this mode prefer to pick secondary platforms. Lines in this mode can be changed back to regular stops in all cases with a new setting in the line editor.
- Drop down in the station info window platforms tab to enable/disable displayed line stops
- Keep a pyramid of map tiles up to lod 10 always ready in the map tile cache for improved zoom out performance and visuals
- Disable hold over code from 1.1 days which was throttling down the loading of map tiles on zoom in/out
- Fix: rare crash with highlighted lines in the map when secondary stops become invalid

--- 1.5.14
- Give a warning when auto line run custom interval is longer than line duration
- Fix: paste orders does not select the pasted orders
- Fix: memory leaks in line listing and map tile loader
- Fix: crash when deleting all line stops while one or more trains are running it

--- 1.5.13
- Use the same detailed train sim model lines use to estimate leg times to estimate the glue paths between runs of different lines. This will change run timings in existing saves when runs transition into a different line.
- Improve build time of map line tiles when the line network changes
- Decrease quality of map line tile drawing at low zoom levels
- Increase the quality of highlighted line drawing at low zoom levels
- Remove some redundant code refreshing non-modified data in the train listing and train order editor for a performance improvement, most noticeable in big saves
- Increase default stop wait to 30s. Existing saves are unmodified.
- Remove the "auto" setting for stop line timing (at the line level, not the stop level) since it had no real utility
- If a train is in manual mode and has one or more copier trains, add a small icon next to its image in the train listing
- Fix: train listing by line tags was empty just after loading a saved game

--- 1.5.12
- Hold shift while using the line stop up/down buttons to instead shift the entire stop list up/down.
- Fix: trains deciding to change their destination while crossing or waiting at a secondary signal will now properly reset their next track, fixing the issue with trains taking absurd paths to reach secondary platforms. This fix has a potential performance impact.
- Fix: timelimes make it possible for pax to be lost exclusively due to the time of the day. For example, by missing a connection in their path because they arrived on late train to the transfer station and missed the last train of the day for the next step. This can cause many pax waiting on stations who are lost due to the timetable, but are not caught until the lost pax checker wakes up every 30m. Rather than waiting for the lost pax checker, if such a pax is detected while loading a train, immediately remove it as lost. This fixes the performance dives observed by some players at some times of the day.
- Fix: some pax were being counted as unable to board a train while just being over the cluster limit of pax
- Fix: full review of the sunday-monday transition in train AI, fixing various bugs both in normal train riding and while waiting to spawn

--- 1.5.11
- Restore line state panel
- Hide platform selection arrows for already picked secondary platforms for a given line stop
- Show non-arrow round labels for secondary platforms when the line overlay is active
- Do not disable the default platform labels while line editor is open
- Show signal icons with their correct rotation while picking the secondary stop signal
- Increase clip collection max track and building limit to 50k and add warning when exceeding it
- Add more textual information to the dominating trips panel
- Fix: 00:00:00 should be a valid auto run line launch time

--- 1.5.10
- Auto change all simple block signals to path signals on game load
- Fix crash in the new anti-loop pax path code

--- 1.5.9
- A very large performance optimization in the pax pathfinder is based on the concept of "jump search", which skips all stops of a line which are not transfer stations or the final destination. Unfortunately this makes it impossible to detect loops in the line stop setup. Starting in this version the pax pathfinder detects and avoids these loops, and when it finds them, it actually uses them as a signal to stop its path search for the currently expanding departure. This should fix the "pax doing line loops" issue and it will enable future improvements like relaxing the limit of pax considering only 2 runs when pathfinding (not yet enabled).
- Previous 1.5.8 fix to avoid pax looping has been reverted. This should improve performance to pre 1.5.8 levels
- Train spawn timetabling is now only allowed to happen in the time window between arrival and departure. Rather than spawning the train ASAP and having it wait for the departure on the tracks, the train AI will wait until the stop time window starts to attempt spawning the train
- Trains wanting to spawn past the departure time of their spawn stop will get rescheduled to try to spawn at a different stop
- Trains waiting to spawn now have a fully independent status of other conditions like busy tracks, with their own countdown
- Some small fixes in the line and train editor to try to improve editing performance with large stations/yards
- When importing a 1.4 save with 1.5.9 or later, train pax will be reset to 0
- Fix: train arrival time was not properly set after intervention in some cases
- Fix: spawned trains on secondary platforms did not properly recognize their successful arrival to said platform and initiated a path
- Fix: line editor timetable run panel was hardcoding the line to the edited line, not the selected run line

--- 1.5.8
- Improve performance when moving or rotating track selections with station platform tracks
- Rename "Leg remaining time" to "Time to scheduled arrival"
- Dominating trips view can be misleading since it does not include the initial wait. Add an optional mode displayed using rhombus shapes to display that initial wait and how it decreases with time.
- Fix: pax were picking trains which returned to their current station because from the POV of the next step the time was exactly the same.
- Fix: pax were not properly picking the right train when the next stop of their trip was on a line different than the current train run
NOTE: this fix is not retroactive to trains of braking or stopping into a station at the moment of loading a 1.5.7 or earlier save. These trains might fail to load pax at that initial stop.
- Fix: changing train auto run line was not clearing the train from the previous auto run line
NOTE: this fix is not retroactive for existing 1.5.7 lines and earlier.
- Fix: new pax which had their trip timer started by the lost pax checker must have their trip time reset on boarding their first train
- Fix: restore "never serviced" accounting
- Fix: assign a valid line geo location rectangle to single stop lines
- Fix: make the rounding of displayed track user max speed match native track speed, and change its comparison to <=

--- 1.5.7
- Dominating trip explorer: new pax listing mode which shows all dominating trips (dominating paths in the literature) between two stations. Pax exclusively consider starting trips to the destination with the line stops appearing at the left of the color bars.
- Add new accounting for the event of a pax trying to board a train but finding it to be full
- Rename some accounts units from "pax" to "events"
- Display secondary destination platform name in train info window when it's different than the main platform
- Fix: the lost pax checker was marking and removing new pax as having waited for too long at every opportunity it had. It will instead promote new pax into "pax" pax, with a registered trip starting time. This happens roughly every 30 minutes, in order to preserve the important performance benefit of clustering new pax. This is correct under 1.5 design since all spawned pax do so with an already time-validated pathfind. 1.5.8 will amend this change to reset the starting time at the time of first boarding.
- Fix: clicks in line orders line drop down should not register on to the orders listing

--- 1.5.6
- Auto run lines can now toggle between automatic evenly spaced launches or an optional fixed launch interval
- Display the interval value for automatic evenly spaced auto run lines
- Show orders of auto run / auto copy trains in read only mode, as a showcase of how the automatic modes generate orders
- Show a warning in train info window and train editor when a train has stale run data. Existing trains need to complete one run for this feature to take effect.
- Fix: crashes in train editor set to line listing with trains having invalid lines in their orders or auto run settings

--- 1.5.5
- Orders: Arrive by mode. In arrive by mode orders start as soon as possible, and the last run of the previous order does not assume extra waiting time. Arrive by orders must always be preceded by orders in some other mode.
- Orders: toggle between single run or repeated runs. In single run mode, the single generated run will assume as much wait as required to start the next order
NOTE: very long runs can glitch the display of runs in the run panel, but work fine
- Run panel: keep selected run in the frame when changing zoom
- Run panel: polish zoom buttons
- Add icons reflecting the order arrival mode in the order listing
- Draw lines between platforms in the platform event listing
- Cancel auto scroll on user attempted scroll of the platform event listing
- Show line in run tooltip
- Show line stop in train icon
- Show custom line duration in red if under native duration, but only if more than 0
- Show clickable train codes as headers in line editor timetable
- Fix: missing remainder wait time in run inspector panel last stop
- Fix: native line loop duration was not being updated on game load
- Fix: rare crash while during train spawn or intervention

--- 1.5.4
- In orders editor, draw a shade effect over runs corresponding to the current order selection
- Fix: missing save support for order arrival/destination setting introduced in 1.5.3

--- 1.5.3
- Line custom duration: players can now input a custom duration for lines. If the native duration of the line is lower than the custom duration, extra stop time will be added to the line until the loop duration time exactly matches the user input.
- Stop selection for custom duration waits: stops can now be selected to serve as the extra wait stops when the custom line duration in effect. If zero stops are selected, the last stop will be used. If two or more stops are selected, the extra wait time will be distributed evenly. These extra wait times are strict additions on top of the normal stop time.
- Orders can now select to match their start times to the first stop arrival or departure
- Fix: manual orders time zone option was no being applied to the input order times. For existing saves the input times are untouched but the time zone option is now active, so existing 1.5 saves with manual orders will see these orders start time shift around.
- Fix: appending or branching tracks should copy the custom max track speed
- Fix: train warping (new train, imported 1.4 game, interventions, etc.) should consider secondary platforms when trying to spawn the train

--- 1.5.2
- Fix: imported 1.4 line stops did not have their min. stop time preserved in some cases, including waypoints
- Fix: trains waiting to spawn should not be flagged as lost
- Tentative fix: crashes are being reported while using the order editor but the previous build disabled some debug information to properly analyze them

--- 1.5.1
Announcement post, including list of changes from v1.4:
SOON

Beta log for v1.4:
https://steamcommunity.com/app/1134710/discussions/0/3190242182147844287/

Beta log for v1.3:
https://steamcommunity.com/app/1134710/discussions/0/4809273833184446890/

Beta log for v1.2:
https://steamcommunity.com/app/1134710/discussions/0/3148556875514031232/

Beta log for v1.1:
https://steamcommunity.com/app/1134710/discussions/0/3108015514316190948/
Last edited by Weird and Wry; Oct 31, 2022 @ 1:57am
Date Posted: Aug 25, 2022 @ 8:55am
Posts: 0