x
Close
About
This is stuff for OpenXcom mods some day there will be a forum link and a github link?
x
Close
Help
help
OpenXcom Modding tools
Rulfile checker
Tools
Mods
Ruleset Validator
Ruleset Formater
Sprites
Combine Sprites
Palette converter
XcomConverter
HWP Builder
Worldeditor
Change the world!
Translation
Language editor
Help
About
Resources
OpenXcom
OpenXcom website
OpenXcom forum
OpenXcom source
OpenXcom wiki
Modding
download/Search Mods
Ruleset Reference
Modding forum
CompletedMods forum
Translation
Translate OpenXcom
Translation forum
x
Set Mod Check Options
Expand all
Collapse all
Options
Show Invisibles
Show IntendGuides
Show Gutter
Soft Wrap
Off
40 chars
80 chars
120 chars
Free
Light Themes
chrome
clouds
crimson_editor
dawn
dreamweaver
eclipse
github
solarized_light
textmate
tomorrow
kuroir
katzenmilch
Dark Themes
ambiance
chaos
clouds_midnight
cobalt
idle_fingers
kr_theme
merbivore
merbivore_soft
mono_industrial
monokai
pastel_on_dark
solarized_dark
terminal
tomorrow_night
tomorrow_night_blue
tomorrow_night_bright
tomorrow_night_eighties
twilight
vibrant_ink
x
Set Modfile
Expand all
Collapse all
Options
Show Invisibles
Show IntendGuides
Show Gutter
Soft Wrap
Off
40 chars
80 chars
120 chars
Free
Light Themes
chrome
clouds
crimson_editor
dawn
dreamweaver
eclipse
github
solarized_light
textmate
tomorrow
kuroir
katzenmilch
Dark Themes
ambiance
chaos
clouds_midnight
cobalt
idle_fingers
kr_theme
merbivore
merbivore_soft
mono_industrial
monokai
pastel_on_dark
solarized_dark
terminal
tomorrow_night
tomorrow_night_blue
tomorrow_night_bright
tomorrow_night_eighties
twilight
vibrant_ink
x
Set Base File
Expand all
Collapse all
Options
Show Invisibles
Show IntendGuides
Show Gutter
Soft Wrap
Off
40 chars
80 chars
120 chars
Free
Light Themes
chrome
clouds
crimson_editor
dawn
dreamweaver
eclipse
github
solarized_light
textmate
tomorrow
kuroir
katzenmilch
Dark Themes
ambiance
chaos
clouds_midnight
cobalt
idle_fingers
kr_theme
merbivore
merbivore_soft
mono_industrial
monokai
pastel_on_dark
solarized_dark
terminal
tomorrow_night
tomorrow_night_blue
tomorrow_night_bright
tomorrow_night_eighties
twilight
vibrant_ink
x
Add data to Basefile
Expand all
Collapse all
Options
Show Invisibles
Show IntendGuides
Show Gutter
Soft Wrap
Off
40 chars
80 chars
120 chars
Free
Light Themes
chrome
clouds
crimson_editor
dawn
dreamweaver
eclipse
github
solarized_light
textmate
tomorrow
kuroir
katzenmilch
Dark Themes
ambiance
chaos
clouds_midnight
cobalt
idle_fingers
kr_theme
merbivore
merbivore_soft
mono_industrial
monokai
pastel_on_dark
solarized_dark
terminal
tomorrow_night
tomorrow_night_blue
tomorrow_night_bright
tomorrow_night_eighties
twilight
vibrant_ink
x
Set Schema
Expand all
Collapse all
Options
Show Invisibles
Show IntendGuides
Show Gutter
Soft Wrap
Off
40 chars
80 chars
120 chars
Free
Light Themes
chrome
clouds
crimson_editor
dawn
dreamweaver
eclipse
github
solarized_light
textmate
tomorrow
kuroir
katzenmilch
Dark Themes
ambiance
chaos
clouds_midnight
cobalt
idle_fingers
kr_theme
merbivore
merbivore_soft
mono_industrial
monokai
pastel_on_dark
solarized_dark
terminal
tomorrow_night
tomorrow_night_blue
tomorrow_night_bright
tomorrow_night_eighties
twilight
vibrant_ink
x
Set Languagefile
Expand all
Collapse all
Options
Show Invisibles
Show IntendGuides
Show Gutter
Soft Wrap
Off
40 chars
80 chars
120 chars
Free
Light Themes
chrome
clouds
crimson_editor
dawn
dreamweaver
eclipse
github
solarized_light
textmate
tomorrow
kuroir
katzenmilch
Dark Themes
ambiance
chaos
clouds_midnight
cobalt
idle_fingers
kr_theme
merbivore
merbivore_soft
mono_industrial
monokai
pastel_on_dark
solarized_dark
terminal
tomorrow_night
tomorrow_night_blue
tomorrow_night_bright
tomorrow_night_eighties
twilight
vibrant_ink
x
Export Modfile
Expand all
Collapse all
Options
Show Invisibles
Show IntendGuides
Show Gutter
Soft Wrap
Off
40 chars
80 chars
120 chars
Free
Light Themes
chrome
clouds
crimson_editor
dawn
dreamweaver
eclipse
github
solarized_light
textmate
tomorrow
kuroir
katzenmilch
Dark Themes
ambiance
chaos
clouds_midnight
cobalt
idle_fingers
kr_theme
merbivore
merbivore_soft
mono_industrial
monokai
pastel_on_dark
solarized_dark
terminal
tomorrow_night
tomorrow_night_blue
tomorrow_night_bright
tomorrow_night_eighties
twilight
vibrant_ink
#- rulfile -> import/open/baserul (load/save export,) ; import zip; options yamloptions; importbase=> choose name or set name, base.rul, lang.yaml, add.rul schema.yaml #import #rulfile: import/open/baserul load/save export #resources: files local/folder #-- #check #syntax: tab, intend, yaml error, pure schema, copyright #references: schema: references, fileids, .. #gamelogic: corpses and stuff #language: lang check #binary: images/sounds checklist: - name: Syntax check desc: In the first part we tests yaml validity and oxc specific syntax problems in the rulfile ops: - func: tabs execpos: puretext # - func: indentation # execpos: puretext # params: {space:2} # - func: forbiddenwords # execpos: puretext # params: # words: # - "__internal_line_number__" #trick to make easy goto line solution shouldn be a propety in normal rul # - "__internal_donotmerge__" #internal name to distinguish the merge and no merge terrains (oxcT_makenomerge) # - "__internal_hasnotypestring__" #internaly used should not be in text # - "__xtrasprdel__" #internaly used while merging extrsprites # - "__internal_PREPoutput__" #internaly used for reordering of properties - func: uniqdict #double hashmaptest execpos: puretext - func: yamlload execpos: predelete - func: checkdelete #test for multiple delete of same thing, delete and include, delete nonexisting execpos: predelete - func: uniqlist #type/name uniqness - name: Data type check desc: Tests all the datatypes of the rulfile ops: - func: schema - name: References desc: Here we verify that all internal references are linking to existing objects ignoreerror: categ: [schema-data] name: [] ops: - func: schema params: extendvalidator: - oxcrefFileIdOneK - oxcValue - oxcKey - oxcArmorInv # - oxcrefFileId - func: oxcautoreference - name: Textcheck desc: Indentation and other text problems mostly not source of an error if yaml import itself works ops: - func: indentation execpos: puretext params: {space:2} - func: forbiddenwords execpos: puretext params: words: - "__internal_line_number__" #trick to make easy goto line solution shouldn be a propety in normal rul - "__internal_donotmerge__" #internal name to distinguish the merge and no merge terrains (oxcT_makenomerge) - "__internal_hasnotypestring__" #internaly used should not be in text - "__xtrasprdel__" #internaly used while merging extrsprites - "__internal_PREPoutput__" #internaly used for reordering of properties - name: Language desc: "Here we test for languge strings, missing ones, unused ones,.." ignoreerror: categ: [schema-data] name: [] ops: # - func: missinglang # params: # langs: [en-US, en-GB] - func: schema params: extendvalidator: - oxcMissingstrings langs: [en-US, en-GB] - func: langmissesstring - name: Game logic desc: The goal in that checklist are logical errors that help fix complex relationship dependencies #lik whats needed to allow live alien capture ignoreerror: categ: [] name: [unusedterrainblocks] ops: #- func: corpses #- func: livealiencapture - func: aliendeployment - func: mapscriptcheck - name: Info desc: Here you can see a bunch of "warnings" that are more like "hints" for modders ops: #- func: corpses #- func: livealiencapture - func: listorder # - name: Binary Data # desc: this check needs you to upload a zipfile of your modfolder so we can check for problems in path and binary data like map/terrain/image/sounds # needs: [zipfile] # ops: # - func: spritesheettestfilenameuniformity # - func: filepathcasetest # - func: spritesheetsize # - func: palettecheck # - func: missingfileid # - func: nospecfile # - func: nonasciicharinpath # - func: filextension not allowed cols: error: "#FF8080" warning: lightyellow datatype: "#FBFBEB" none: white edata: schema-data: _level: datatype "$ref": _desc: "no description defined" "additionalItems": _desc: "no description defined" "additionalProperties": _desc: "no description defined" "allOf": _desc: "no description defined" "anyOf": _desc: "no description defined" "dependencies": _desc: "no description defined" "enum": _desc: "no description defined" "format": _desc: "no description defined" "items": _desc: "no description defined" "maxItems": _desc: "no description defined" "maxLength": _desc: "no description defined" "maxProperties": _desc: "no description defined" "maximum": _desc: "no description defined" "minItems": _desc: "no description defined" "minLength": _desc: "no description defined" "minProperties": _desc: "no description defined" "minimum": _desc: "no description defined" "multipleOf": _desc: "no description defined" "not": _desc: "no description defined" "oneOf": _desc: "no description defined" "pattern": _desc: "no description defined" "patternProperties": _desc: "no description defined" "properties": _desc: "no description defined" "required": _desc: "no description defined" "type": _desc: "no description defined" "uniqueItems": _desc: "no description defined" config: validatormissing: _level: warning _desc: "no description defined" funcmissing: _level: warning _desc: "no description defined" checksfailed: _level: error yamlload: _desc: "no description defined" datahandledelete: _desc: "no description defined" datamergedata: _desc: "no description defined" makelists: _desc: "no description defined" errorfilter: _desc: "no description defined" runfailed: _desc: "no description defined" _level: error syntax: tabs: _desc: "no description defined" _level: error indentation: _desc: "no description defined" forbiddenwords: _desc: "no description defined" yamlload: _desc: "no description defined" _level: error uniqdict: _desc: "no description defined" _level: warning negativekey: _desc: "no description defined" delete: amountproperties: _desc: "no description defined" amounttarget: _desc: "no description defined" multipledeletion: _desc: "no description defined" deleteexisting: _desc: "no description defined" semantic: multiplelistelems: _desc: "no description defined" _level: warning oxcautoreference: _desc: "no description defined" _level: warning langmissesstring: _desc: "no description defined" aliendeployment: _desc: "no description defined" _level: error info: listorder: _desc: "no description defined" mapscriptcheck: conditionzero: _desc: "no description defined" conditionmissref: _desc: "no description defined" nonuniquelabel: _desc: "no description defined" rectsize: _desc: "no description defined" blockandgroup: _desc: "no description defined" unusedterrain: _desc: "no description defined" unusedscripts: _desc: "no description defined" craftufoafteraddblocks: _desc: "no description defined" blockinfoarray: _desc: "no description defined" unusedparameter: _desc: "no description defined" mcdsetwrong: _desc: "no description defined" nonfittingblock: _desc: "no description defined" nonfittinggroup: _desc: "no description defined" unusedterrainblocks: _desc: "no description defined" schema-oxc: oxcGL_refFileId: _desc: "no description defined" oxcGL_checkKey: _desc: "no description defined" _level: warning oxcGL_lookupVal: _desc: "no description defined" _level: warning oxcGL_checkFileId: _desc: "no description defined" oxcGL_lookupArmorInv: _desc: "no description defined" ocxlang: _desc: "no description defined"
terrains: - name: UBASE mapDataSets: - BLANKS - U_BASE - U_WALL02 - U_PODS - BRAIN largeBlockLimit: 3 mapBlocks: - name: UBASE_00 width: 20 length: 20 type: 7 items: STR_ALIEN_DATA_SLATE: - [6, 6, 1, "fails"] - name: UBASE_01 width: "20" length: 20 invs: - id: STR_GROUND x: 0 y: 152 type: 2 costs: STR_BACK_PACK: 20 STR_BELT: 12 STR_LEFT_HAND: 8 STR_LEFT_LEG: 10 STR_LEFT_SHOULDER: 12 STR_LEFT_SHOULDE: 12 STR_RIGHT_HAND: 8 STR_RIGHT_LEG: 10 STR_RIGHT_SHOULDER: 12 countries: - delete: STR_USA - delete: STR_GERMANY - delete: STR_GERMANY items: - type: STR_STINGRAY_LAUNCHER size: 0.8 size: 0.9 bulletSprite: 20 handSprite: 317 - type: STR_STINGRA.-Y_LAUNCHER size: 0.8 handSprite: 319 - type: STR_COMBAT_ARMOR size: 0.8 costBuy: 50000 costSell: 35000 listOrder: 10499 - type: STR_CORPSE_COMBAT_ARMOR name: STR_CORPSE weight: 24 bigSprite: 164 floorSprite: 277 invWidth: 2 invHeight: 3 armor: 30 recover: false armors: - type: STR_COMBAT_ARMOR_UC spriteSheet: XCOM_4.PC spriteInv: MAN_4 corpseItem: STR_CORPSE_COMBAT_ARMOR storeItem: STR_COMBAT_ARMOR loftemps: 3 frontArmor: 30 sideArmor: 30 rearArmor: 20 underArmor: 20 damageModifier: - 1.0 - 1.0 - 0.8 - 1.0 - 1.0 - 1.0 - 0.9 - 1.0 - 1.1 - 1.0 ufopaedia: - uid: STR_COMBAT_ARMOR_UC - id: STR_COMBAT_ARMOR_UC type_id: 5 section: STR_WEAPONS_AND_EQUIPMENT listOrder: 1699 extraSprites: - type: MAN_4F0.SPK singleImage: true files: 0: Resources/CombatArmor/Inventory/man_4f0.gif - type: MAN_4F1.SPK singleImage: true files: 0: Resources/CombatArmor/Inventory/man_4f1.gif - type: MAN_4F2.SPK singleImage: true files: 0: Resources/CombatArmor/Inventory/man_4f2.gif - type: MAN_4F3.SPK singleImage: true files: 0: Resources/CombatArmor/Inventory/man_4f3.gif - type: MAN_4M0.SPK singleImage: true files: 0: Resources/CombatArmor/Inventory/man_4m0.gif - type: MAN_4M1.SPK singleImage: true files: 0: Resources/CombatArmor/Inventory/man_4m1.gif - type: MAN_4M2.SPK singleImage: true files: 0: Resources/CombatArmor/Inventory/man_4m2.gif - type: MAN_4M3.SPK singleImage: true files: 0: Resources/CombatArmor/Inventory/man_4m3.gif - type: XCOM_4.PCK width: 32 height: 40 files: 0: Resources/CombatArmor/XCOM_4/ - type: BIGOBS.PCK files: 64: Resources/CombatArmor/BIGOBS/Kevlar_Inventory_Corpse.gif - type: FLOOROB.PCK files: 77: Resources/CombatArmor/FLOOROB/Kevlar_Corpse.gif extraStrings: - type: en-US strings: STR_COMBAT_ARMOR: Combat Armor STR_COMBAT_ARMOR_UC: COMBAT ARMOR - type: en-GB strings: STR_COMBAT_ARMOR: Combat Armour STR_COMBAT_ARMOR_UC: COMBAT ARMOUR
Start
Modtester
OneFile
multiple Files
test
default
Options
Drop files here or Click to upload multiple rulfiles
untested
Test
Open
name:
.rul
Merge
Delete
this is the testpage
foobar
Open rulfile
Test
View all errors
Modcheck Options
Open options
Show Base Edit Options
BaseEdit Options
set a new Base
name:
pwd:
Open basefile
Open addfile
Open schemafile
Open langfile
Save
Merge Options
Reformat
Delete
Modindex
Modindex-increase