Skip to content

Instantly share code, notes, and snippets.

7.1.2024 08:29:53 [Notification] Server logger started.
7.1.2024 08:29:53 [Notification] Game Version: v1.19.0-rc.6 (Unstable)
7.1.2024 08:29:53 [Event] Launching server...
7.1.2024 08:29:53 [Event] Server v1.19.0-rc.6, network v1.19.3, api v1.19.0
7.1.2024 08:29:53 [Notification] Entering runphase Initialization
7.1.2024 08:29:53 [Event] Loading configuration...
7.1.2024 08:29:53 [Notification] Entering runphase Configuration
7.1.2024 08:29:53 [Notification] Loading savegame
7.1.2024 08:29:53 [Notification] Loaded existing save game data. Playstyle: wildernesssurvival, Playstyle Lang code: preset-wildernesssurvival, WorldType: preset-wildernesssurvival
7.1.2024 08:29:53 [Notification] Savegame /home/zar/.config/VintagestoryData/Saves/peaceful village story rc.vcdbs loaded
7.1.2024 08:14:39 [Notification] Client logger started.
7.1.2024 08:14:39 [Notification] Game Version: v1.19.0-rc.6 (Unstable)
7.1.2024 08:14:40 [Notification] OpenAL Initialized. Available Mono/Stereo Sources: 255/1
7.1.2024 08:14:40 [Notification] Process path: /home/zar/ApplicationData/vintagestory/Vintagestory
7.1.2024 08:14:40 [Notification] Operating System: Linux (Linux Mint 21.1) [Kernel 5.15.0.88]
7.1.2024 08:14:40 [Notification] CPU Cores: 12
7.1.2024 08:14:40 [Notification] Available RAM: 15826 MB
7.1.2024 08:14:40 [Notification] Graphics Card Vendor: NVIDIA Corporation
7.1.2024 08:14:40 [Notification] Graphics Card Version: 3.3.0 NVIDIA 535.129.03
7.1.2024 08:14:40 [Notification] Graphics Card Renderer: NVIDIA GeForce RTX 2080 Super with Max-Q Design/PCIe/SSE2
@Zarkonnen
Zarkonnen / heromodding.md
Last active August 8, 2023 07:53
Hero Modding Documentation

The heroes introduced in the Heroes & Villains DLC can be modded, changing them or adding new ones.

You can download a simple example mod here, for you to study and modify. You can also look at the already existing heroes in data/crossplay/heroes/HeroType. You can probably figure things out just from that.

The rest of this post attempts to document everything exhaustively, so don't feel that you have to have read all of it to start modding heroes! Reading "Basic Hero Structure" and "Recruit Hooks" and then whatever you think you need should be enough to start.

You can find detailed documentation on how modding works here, but here's the short version: A mod is a folder containing an info.json file, a logo.png file, and a bunch of folders containing JSON files with the same structure as the data folder in the game. You will also need a strings/en.properties file for the text in your mod, and

@Zarkonnen
Zarkonnen / special_eras.md
Last active March 20, 2023 00:08
How to mod in new special eras

Special eras are one of the features that I introduced in the co-op and conquest update in August. These work by temporarily changing the rules of the game, and may also have a victory condition, where an empire can be rewarded for ending the era early.

Like pretty much everything in the game, these are data-driven, so you can add new ones by modding. Here's how.

(This post assumes that you know how Airships mods work. If you want an introduction to basic modding, check out this article first.)

Play in Airships progresses through a series of eras, which slowly change the game balance, decreasing the unrest from empire size, and increasing base research and the number of spies available. Each era has a chance to be a randomly chosen special era, which accumulates over time, so that while not every era is special, you will definitely get some special ones. You can see this information in

EMPIRE STATS EXPLANATION

These are per-empire values that are modified by an empire's bonuses. You can give an empire bonuses through heraldic charges, technology, city upgrades, special eras, monster nest rewards and expedition rewards.

This document is best read together with Airships Install Folder/data/EmpireStat/stats.json so you can see the concrete values used.

Calculations and Notes

Time

Time: 1 day = 400 milliseconds

@Zarkonnen
Zarkonnen / all-loadables.java
Last active May 5, 2022 09:26
Moddable data loading code from Airships
// Dump of the data loading code for the game for modders to pick apart.
// Code is for version 1.0.23.10
// See also:
// http://zarkonnen.com/airships/modding_guide
// http://zarkonnen.com/airships/modding_guide/crew_animation
// http://zarkonnen.com/airships/modding_guide/bonusable_values
// Documentation on what the weather/landscape stuff will look like after the landscape update
// https://gist.github.com/Zarkonnen/bf56b5c72b203767cac8ddc264781fc3
// Appearances are used all over the place
@Zarkonnen
Zarkonnen / weather.md
Last active March 26, 2022 15:54
New weather and landscape features documentation

These new features for weather and landscapes are currently available in the "weather" beta branch on Steam. The new data format is backwards-compatible with the old one, so you can e.g still just set "rain": true to get generic rain.

One big change is that instead of having extra fields for a snowy variant of things, there's now a generic "variant" value that can be used to define multiple visual variants of land blocks and backgrounds.

LandscapeType

  • backgroundFlavors - list, which CombatBackgroundFlavors this landscape type supports
  • hills - 0.0 to 1.0, hilliness
  • hasTrees - true/false, whether there are any trees
  • minTreeClusterDistance - Minimum distance between clusters of trees, in blocks.
  • maxTreeClusterDistance - Maximum distance between clusters of trees, in blocks.
@Zarkonnen
Zarkonnen / postmortem.md
Created October 8, 2021 08:26
Postmortem: The Unstable Zone

A rather verbose postmortem of my compo game, The Unstable Zone.

I was really happy to be able to do Ludum Dare outside the house again. I tried doing game jams while isolating at home, and I just can't get into the spirit of it. A jam is a bit of an altered state, and it's hard to get into an altered state if you're sitting on a sofa at home and the dishes need doing. Without resorting to drugs, I mean.

So I did Ludum Dare at the local gamedev incubator thingy I co-founded, Swiss Game Hub. About eight people turned up at various points, working on around five games, rather fewer than before, probably in part because there was a big games event going on at the same time. (And yes, we were all verifiedly vaccinated, that's why we could do it in person again.)

I believe I voted for Unstable in the preliminary round and then against it in the final round, so I had mixed feelings. But that's how jam themes always work: the moment you find out, you are convinced it's the worst possible theme and your brain

@Zarkonnen
Zarkonnen / PersonOfInterestListener.java
Created September 30, 2021 07:39
Java snippet for a story
class PersonOfInterestListener implements StreetEventListener {
final String personOfInterestName;
final GoalOrientedProcess proc;
public PersonOfInterestListener(GoalOrientedProcess proc, String personOfInterestName) {
this.proc = proc;
this.personOfInterestName = personOfInterestName;
}
public void processEvent(StreetEvent e) {
Zerkas
= War =
+ 7 Relative Strength
+ 1 Reputation
Total 8
= Peace =
Total 0
= Non-Aggression Pact =
- 7 Relative Strength
+ 6 Threatening Neighbours