Malta Life ← Back to the island

Asset licences

Everything in Malta Life that we did not make ourselves, where it came from, and the licence it ships under. This page is generated from the game's own licence files (website/tools/build_licenses.py), so it matches the repository.

Required attributions

Items marked unverified or review before shipping below are copied as-is from the internal notes. Most of them concern optional local AI tools in ai/, which the export presets exclude from the downloadable build.

Source file: game/assets/audio/LICENSES.md

Audio licences and sources

Every file under game/assets/audio/ is listed below with its source and licence. Nothing here is CC-BY-NC or of unknown licence.

1. Kenney (CC0 1.0 Universal, public domain)

Downloaded from https://kenney.nl/assets/<pack>. Each file is a verbatim copy of the pack's OGG, renamed to the path shown.

Game fileKenney packOriginal path in pack
minigame/fail_0.oggdigital-audiolowDown.ogg
minigame/fail_1.oggdigital-audiohighDown.ogg
minigame/success_0.oggdigital-audiopowerUp2.ogg
minigame/success_1.oggdigital-audiopowerUp4.ogg
minigame/success_2.oggdigital-audiopowerUp5.ogg
minigame/success_3.oggdigital-audiopowerUp6.ogg
sfx/bell/bell_strike_0.oggimpact-soundsimpactBell_heavy_000.ogg
sfx/bell/bell_strike_1.oggimpact-soundsimpactBell_heavy_001.ogg
sfx/bell/bell_strike_2.oggimpact-soundsimpactBell_heavy_002.ogg
sfx/bell/bell_strike_3.oggimpact-soundsimpactBell_heavy_003.ogg
sfx/bell/bell_strike_4.oggimpact-soundsimpactBell_heavy_004.ogg
sfx/car/impact_metal_0.oggimpact-soundsimpactMetal_heavy_000.ogg
sfx/car/impact_metal_1.oggimpact-soundsimpactMetal_heavy_001.ogg
sfx/car/impact_metal_2.oggimpact-soundsimpactMetal_heavy_002.ogg
sfx/car/impact_metal_3.oggimpact-soundsimpactMetal_heavy_003.ogg
sfx/car/impact_metal_4.oggimpact-soundsimpactMetal_heavy_004.ogg
sfx/car/impact_plate_0.oggimpact-soundsimpactPlate_heavy_000.ogg
sfx/car/impact_plate_1.oggimpact-soundsimpactPlate_heavy_001.ogg
sfx/car/impact_plate_2.oggimpact-soundsimpactPlate_heavy_002.ogg
sfx/car/impact_plate_3.oggimpact-soundsimpactPlate_heavy_003.ogg
sfx/car/impact_plate_4.oggimpact-soundsimpactPlate_heavy_004.ogg
sfx/cash/chips_0.oggcasino-audiochips-collide-1.ogg
sfx/cash/chips_1.oggcasino-audiochips-collide-2.ogg
sfx/cash/chips_2.oggcasino-audiochips-collide-3.ogg
sfx/cash/chips_3.oggcasino-audiochips-collide-4.ogg
sfx/cash/coins_0.oggrpg-audiohandleCoins.ogg
sfx/cash/coins_1.oggrpg-audiohandleCoins2.ogg
sfx/door/close_0.oggrpg-audiodoorClose_1.ogg
sfx/door/close_1.oggrpg-audiodoorClose_2.ogg
sfx/door/close_2.oggrpg-audiodoorClose_3.ogg
sfx/door/close_3.oggrpg-audiodoorClose_4.ogg
sfx/door/creak_0.oggrpg-audiocreak1.ogg
sfx/door/creak_1.oggrpg-audiocreak2.ogg
sfx/door/creak_2.oggrpg-audiocreak3.ogg
sfx/door/latch_0.oggrpg-audiometalLatch.ogg
sfx/door/open_0.oggrpg-audiodoorOpen_1.ogg
sfx/door/open_1.oggrpg-audiodoorOpen_2.ogg
sfx/footstep/grass_0.oggimpact-soundsfootstep_grass_000.ogg
sfx/footstep/grass_1.oggimpact-soundsfootstep_grass_001.ogg
sfx/footstep/grass_2.oggimpact-soundsfootstep_grass_002.ogg
sfx/footstep/grass_3.oggimpact-soundsfootstep_grass_003.ogg
sfx/footstep/grass_4.oggimpact-soundsfootstep_grass_004.ogg
sfx/footstep/stone_0.oggimpact-soundsfootstep_concrete_000.ogg
sfx/footstep/stone_1.oggimpact-soundsfootstep_concrete_001.ogg
sfx/footstep/stone_2.oggimpact-soundsfootstep_concrete_002.ogg
sfx/footstep/stone_3.oggimpact-soundsfootstep_concrete_003.ogg
sfx/footstep/stone_4.oggimpact-soundsfootstep_concrete_004.ogg
sfx/footstep/wood_0.oggimpact-soundsfootstep_wood_000.ogg
sfx/footstep/wood_1.oggimpact-soundsfootstep_wood_001.ogg
sfx/footstep/wood_2.oggimpact-soundsfootstep_wood_002.ogg
sfx/footstep/wood_3.oggimpact-soundsfootstep_wood_003.ogg
sfx/footstep/wood_4.oggimpact-soundsfootstep_wood_004.ogg
sfx/impact/drop_bag_0.oggrpg-audiodropLeather.ogg
sfx/impact/generic_0.oggimpact-soundsimpactGeneric_light_000.ogg
sfx/impact/generic_1.oggimpact-soundsimpactGeneric_light_001.ogg
sfx/punch/body_soft_0.oggimpact-soundsimpactSoft_medium_000.ogg
sfx/punch/body_soft_1.oggimpact-soundsimpactSoft_medium_001.ogg
sfx/punch/body_soft_2.oggimpact-soundsimpactSoft_medium_002.ogg
sfx/punch/body_soft_3.oggimpact-soundsimpactSoft_medium_003.ogg
sfx/punch/body_soft_4.oggimpact-soundsimpactSoft_medium_004.ogg
sfx/punch/punch_heavy_0.oggimpact-soundsimpactPunch_heavy_000.ogg
sfx/punch/punch_heavy_1.oggimpact-soundsimpactPunch_heavy_001.ogg
sfx/punch/punch_heavy_2.oggimpact-soundsimpactPunch_heavy_002.ogg
sfx/punch/punch_heavy_3.oggimpact-soundsimpactPunch_heavy_003.ogg
sfx/punch/punch_heavy_4.oggimpact-soundsimpactPunch_heavy_004.ogg
sfx/punch/punch_medium_0.oggimpact-soundsimpactPunch_medium_000.ogg
sfx/punch/punch_medium_1.oggimpact-soundsimpactPunch_medium_001.ogg
sfx/punch/punch_medium_2.oggimpact-soundsimpactPunch_medium_002.ogg
sfx/punch/punch_medium_3.oggimpact-soundsimpactPunch_medium_003.ogg
sfx/punch/punch_medium_4.oggimpact-soundsimpactPunch_medium_004.ogg
stinger/lose_0.oggmusic-jinglesSteel jingles/jingles_STEEL00.ogg
stinger/win_0.oggmusic-jinglesPizzicato jingles/jingles_PIZZI00.ogg
stinger/win_1.oggmusic-jinglesPizzicato jingles/jingles_PIZZI01.ogg
ui/back_0.ogginterface-soundsback_001.ogg
ui/back_1.ogginterface-soundsback_002.ogg
ui/back_2.ogginterface-soundsback_003.ogg
ui/back_3.ogginterface-soundsback_004.ogg
ui/card_0.oggcasino-audiocard-place-1.ogg
ui/card_1.oggcasino-audiocard-place-2.ogg
ui/card_2.oggcasino-audiocard-place-3.ogg
ui/card_3.oggcasino-audiocard-place-4.ogg
ui/click_0.oggui-audioclick1.ogg
ui/click_1.oggui-audioclick2.ogg
ui/click_2.oggui-audioclick3.ogg
ui/click_3.oggui-audioclick4.ogg
ui/click_4.oggui-audioclick5.ogg
ui/confirm_0.ogginterface-soundsconfirmation_001.ogg
ui/confirm_1.ogginterface-soundsconfirmation_002.ogg
ui/confirm_2.ogginterface-soundsconfirmation_003.ogg
ui/confirm_3.ogginterface-soundsconfirmation_004.ogg
ui/error_0.ogginterface-soundserror_001.ogg
ui/error_1.ogginterface-soundserror_002.ogg
ui/error_2.ogginterface-soundserror_003.ogg
ui/error_3.ogginterface-soundserror_004.ogg
ui/error_4.ogginterface-soundserror_005.ogg
ui/error_5.ogginterface-soundserror_006.ogg
ui/error_6.ogginterface-soundserror_007.ogg
ui/error_7.ogginterface-soundserror_008.ogg
ui/hover_0.oggui-audiorollover1.ogg
ui/hover_1.oggui-audiorollover2.ogg
ui/hover_2.oggui-audiorollover3.ogg
ui/hover_3.oggui-audiorollover4.ogg
ui/hover_4.oggui-audiorollover5.ogg
ui/hover_5.oggui-audiorollover6.ogg
ui/notify_bong_0.ogginterface-soundsbong_001.ogg
ui/notify_tone_0.oggdigital-audiotwoTone1.ogg
ui/notify_tone_1.oggdigital-audiothreeTone1.ogg
ui/open_0.ogginterface-soundsopen_001.ogg
ui/open_1.ogginterface-soundsopen_002.ogg
ui/open_2.ogginterface-soundsopen_003.ogg
ui/open_3.ogginterface-soundsopen_004.ogg
ui/select_0.ogginterface-soundsselect_001.ogg
ui/select_1.ogginterface-soundsselect_002.ogg
ui/select_2.ogginterface-soundsselect_003.ogg
ui/select_3.ogginterface-soundsselect_004.ogg
ui/select_4.ogginterface-soundsselect_005.ogg
ui/select_5.ogginterface-soundsselect_006.ogg
ui/select_6.ogginterface-soundsselect_007.ogg
ui/select_7.ogginterface-soundsselect_008.ogg
ui/tick_0.ogginterface-soundstick_001.ogg
ui/tick_1.ogginterface-soundstick_002.ogg
ui/tick_2.ogginterface-soundstick_004.ogg
ui/toggle_0.oggui-audioswitch1.ogg
ui/toggle_1.oggui-audioswitch2.ogg
ui/toggle_2.oggui-audioswitch3.ogg
ui/toggle_3.oggui-audioswitch4.ogg
ui/toggle_4.oggui-audioswitch5.ogg
ui/toggle_5.oggui-audioswitch6.ogg

2. Procedural (original, generated by game/tools/make_sfx.py)

Synthesised in numpy from sine partials, filtered noise and envelopes. No samples were used. The project owns these files and they carry no third-party licence. Loops are exact multiples of their length at 48 kHz, so they join without a seam.

Festa band march (original, synthesised in Python with the standard wave module)

3. Voice lines (generated, game/tools/bake_voices.py)

Rendered with Kokoro-82M through the local server in game/ai/tts, using only the Kokoro preset voices listed in game/ai/tts/voices/voices.json. No real person's voice is cloned. The Kokoro-82M licence is not recorded in this repository. Check the model card before any public release and add the licence here.

0 files, indexed in voice/manifest.json.

3b. Mumble syllables (generated, game/tools/bake_mumbles.py)

mumble/male/*.ogg and mumble/female/*.ogg (60 clips, 0.15 to 0.32 s, about 260 KB in all): single nonsense syllables spoken offline by Piper en_US-libritts_r-medium speakers 7, 272 and 201 (male) and 255, 241 and 101 (female). These are non-cast voices from fallback_pools in game/data/piper_voices.json, and none of them is a ref_* clone reference. Voice licence: LibriTTS-R, CC BY 4.0 (openslr.org/141). Attribution: "Voices: Piper (rhasspy) trained on LibriTTS-R (CC BY 4.0)".

4. Music

None shipped. The music states in game/data/audio.json have no files, and their expected filenames are documented in game/docs/AUDIO.md.

Source file: game/assets/third_party/LICENSES.md

Third-party visual assets: sources and licences

All textures and HDRIs below come from Poly Haven (https://polyhaven.com), whose assets are released under CC0 1.0 Universal (https://creativecommons.org/publicdomain/zero/1.0/). Attribution is not required; the author credits are listed for reference.

Fonts come from Google Fonts (https://fonts.google.com), taken from the google/fonts GitHub repository (https://github.com/google/fonts, path ofl/<family>/). They are licensed under the SIL Open Font License 1.1; the licence text ships in each font folder as OFL.txt.

Textures (textures/<id>/)

Each texture folder holds _diff (albedo), _nor_gl (normal map, OpenGL convention), _rough (roughness) and _ao (ambient occlusion) JPGs.

FolderUseResolutionSourceAuthor(s)Licence
sandstone_blocks_05warm stone block walls (stands in for Maltese limestone; Poly Haven has no limestone block set)2Khttps://polyhaven.com/a/sandstone_blocks_05Rob TuytelCC0 1.0
painted_plaster_wallweathered painted plaster2Khttps://polyhaven.com/a/painted_plaster_wallAmal KumarCC0 1.0
asphalt_03worn asphalt road2Khttps://polyhaven.com/a/asphalt_03Dario Barresi (processing), Charlotte Baglioni (photography)CC0 1.0
concrete_pavement_03concrete pavement / sidewalk2Khttps://polyhaven.com/a/concrete_pavement_03Charlotte BaglioniCC0 1.0
patterned_concrete_paverspatterned cement floor / paving tiles2Khttps://polyhaven.com/a/patterned_concrete_paversAmal KumarCC0 1.0
distressed_painted_plankspainted wood planks (balconies, doors)1Khttps://polyhaven.com/a/distressed_painted_planksRob TuytelCC0 1.0
metal_grate_rustyrusty metal1Khttps://polyhaven.com/a/metal_grate_rustyRob Tuytel (processing), Dimitrios Savva (photography)CC0 1.0
coast_land_rocks_01coastal rock2Khttps://polyhaven.com/a/coast_land_rocks_01Rob Tuytel (photography, processing), Rico Cilliers (tiling)CC0 1.0
coast_sand_01beach sand2Khttps://polyhaven.com/a/coast_sand_01Rob TuytelCC0 1.0
clay_roof_tiles_02terracotta roof tiles2Khttps://polyhaven.com/a/clay_roof_tiles_02Amal KumarCC0 1.0
grass_grounddry grass and soil1Khttps://polyhaven.com/a/grass_groundCharlotte BaglioniCC0 1.0

Downloaded from the jpg entries of https://api.polyhaven.com/files/<id>, e.g. https://dl.polyhaven.org/file/ph-assets/Textures/jpg/2k/sandstone_blocks_05/sandstone_blocks_05_diff_2k.jpg.

HDRIs (hdri/)

Equirectangular Radiance .hdr, 2K.

FileUseSourceAuthor(s)Licence
circus_maximus_2_2k.hdrclear sunny midday sky (Rome)https://polyhaven.com/a/circus_maximus_2Greg Zaal (all), Rico Cilliers (backplates)CC0 1.0
blue_lagoon_2k.hdrclear afternoon sky with sea and pierhttps://polyhaven.com/a/blue_lagoonGreg ZaalCC0 1.0
belfast_sunset_puresky_2k.hdrsunset skyhttps://polyhaven.com/a/belfast_sunset_pureskyGreg Zaal (processing), Dimitrios Savva (photography), Jarod Guest (sky edits)CC0 1.0
blue_lagoon_night_2k.hdrnight, lit promenade by the seahttps://polyhaven.com/a/blue_lagoon_nightGreg ZaalCC0 1.0

Downloaded from the hdri entry of https://api.polyhaven.com/files/<id>.

Fonts (fonts/)

FolderFileUseDesignerSourceLicence
playfair_display/PlayfairDisplay[wght].ttfdisplay serifClaus Eggers Sørensenhttps://github.com/google/fonts/tree/main/ofl/playfairdisplaySIL OFL 1.1 (OFL.txt)
inter/Inter[opsz,wght].ttfUI sansRasmus Anderssonhttps://github.com/google/fonts/tree/main/ofl/interSIL OFL 1.1 (OFL.txt)
oswald/Oswald[wght].ttfcondensed signageVernon Adams, Kalapi Gajjar, Cyrealhttps://github.com/google/fonts/tree/main/ofl/oswaldSIL OFL 1.1 (OFL.txt)

Downloaded from https://raw.githubusercontent.com/google/fonts/main/ofl/<family>/.

Not used

ambientCG was not used. Poly Haven had a suitable match for every requested slot.

Source file: game/assets/LICENSES.md

Third-party assets and tools: sources and licences

3D characters

Derived variants (generated, current)

MakeHuman assets (body, skin, hair, clothes, eyes, eyebrows)

MPFB2 (MakeHuman Plugin for Blender) v2.0.18

Quaternius Universal Animation Library (Standard), CC0

KayKit: Adventurers Character Pack 1.0 (archived)

Textures (ambientCG, CC0)

Rust007 (1K-JPG)

Metal032 and Wood049 (1K-JPG)

Procedural city assets (no third-party content)

Text-to-speech (offline)

Piper (TTS engine)

Voice: en_GB-alan-medium

Voice: en_GB-jenny_dioco-medium

speak.sh

Tools

Blender 5.2 LTS (used in background mode)

Godot 4.7.2

Assets that were considered and not used

Source file: game/ai/piper/voices/LICENSES.md

Piper voice licences

All models come from https://huggingface.co/rhasspy/piper-voices (the .onnx, .onnx.json and MODEL_CARD files; each card is saved next to its model as <stem>.MODEL_CARD). The Piper runtime (piper-tts 1.8.0 in venv/) is GPL-3.0-or-later and bundles espeak-ng data (GPL-3.0). It runs as a separate process over HTTP and is not linked into the game; keep it that way, and ship its source and licence if the server is ever bundled. The licence below is that of the *training dataset*, as stated in the model card, and it governs the voice.

ModelSpeakersSizeDataset licence (from MODEL_CARD)Commercial use
en_US-libritts_r-medium90478.6 MBCC BY 4.0 (LibriTTS-R, openslr.org/141)yes, with attribution
en_GB-vctk-medium10977.0 MBCC BY 4.0 (VCTK, datashare.ed.ac.uk/handle/10283/3443)yes, with attribution
en_GB-northern_english_male-medium163.2 MBCC BY-SA 4.0 (openslr.org/83)yes, attribution + share-alike
en_GB-cori-medium163.5 MBpublic domain (LibriVox)yes
en_US-reza_ibrahim-medium163.5 MBCC0 (HF datasets mah92/Hedayatfar-Persian-Quran-Audio-Dataset + mah92/Ibrahim-Walk-English-Quran-Audio-Dataset)yes
en_GB-alan-medium (pre-installed)163.2 MB"See URL": github.com/MycroftAI/mimic3-voices (en_UK/apope_low)UNVERIFIED: check that URL before shipping
en_GB-jenny_dioco-medium (pre-installed)163.2 MB"See URL": github.com/dioco-group/jenny-tts-dataset (custom licence)UNVERIFIED: check that URL before shipping

Non-commercial flags: none of the downloaded models are NC. Two models were considered and deliberately *not* downloaded because their cards are non-commercial: en_US-l2arctic-medium (CC BY-NC 4.0) and en_GB-semaine-medium (CC BY-NC-SA 4.0). en_US-ryan-medium (CC BY-NC-SA 4.0) was also skipped. alan and jenny_dioco are not used by data/piper_voices.json, so the cast does not depend on their unverified licences.

Attribution for credits: "Voices: Piper (rhasspy) trained on LibriTTS-R (CC BY 4.0), CSTR VCTK Corpus (CC BY 4.0), the Google crowdsourced UK/Ireland English dataset (openslr 83, CC BY-SA 4.0) and LibriVox (public domain)." reza_ibrahim is CC0 (no attribution needed; credit: datasets by RezaHedayatfar and IbrahimWalk, voice trained by Ali Mahmoudi).

Downloaded 2026-11-03: 282.3 MB in total (four models), plus en_US-reza_ibrahim-medium (63.5 MB, sha256 99f0c314...15cd3c, matches the HF LFS oid) the same day: 345.8 MB. Not cast (see docs/handover/piper_voices.md).