70a64e3709
Freeze the running offline FUT backend into version control as fifa17-recon/docker/fifa17-python/ - declarative and rebuildable from a fresh checkout: * OPENFUT_BIND / OPENFUT_ADVERTISE client/server split in the responders (lsx, blaze, roster, utas, pow) + entrypoint.sh; OPENFUT_ADVERTISE is required for remote mode (compose and entrypoint fail without it) * docker-compose.yml reproducing the frozen baseline container exactly (env, ports incl. the 8085->8080 POW-content remap, /state bind, restart) * .env.example / .env for site config - the LAN IP is never hardcoded in source * tools/ + data/ staged from openfut-fut-backend:python-baseline-2026-08-10, verified byte-identical to the running container at freeze time * client_arm.sh (the 105 client-side arming counterpart) * Dockerfile bakes /app/SHA256SUMS.txt so any image is self-identifying * docs/BASELINE-python-2026-08-10.md: frozen image/container/hash record, restore instructions and rebuild-equivalence procedure Secrets (redir key/cert, .env) and runtime state (docker/state) stay gitignored. The live container is untouched pending the .105 launcher audit.
1 line
8.7 KiB
JSON
1 line
8.7 KiB
JSON
{"table":"createplayer","source":"FIFA17.exe resident database (tools/db_dump.py)","rowcount":0,"rowsize_bytes":260,"rows_emitted":0,"rowblock":"0x427c7ea8","rowblock_bytes":26033,"descriptor":"0x424a4538","schema":[{"name":"cpmorphcomposite_noseprofile_protrusion_lsx","bit":0,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_eyedetail1_folds_lsy","bit":32,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_mouthposition_protrusion_rsx","bit":64,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_nostrildetail_height_lsy","bit":96,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_browshape_protrusion_rsx","bit":128,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_browshape_tilt_lsy","bit":160,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_earplacement_height_lsy","bit":192,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_cheekplacement_position_lsy","bit":224,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_eyeshape_shape_rsx","bit":256,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_lips_upperlip_shape_lsx","bit":288,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_eyeshape_height_lsy","bit":320,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_mouthposition_bite_rsy","bit":352,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_cheekstyle_blemishes_rsx","bit":384,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_nostrils_height_lsy","bit":416,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_mouthblemishes_lsx","bit":448,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_earstyle_lobe_lsx","bit":480,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"skincolor","bit":512,"width":32,"kind":"int","min":-1,"max":2147483647,"storage":"int"},{"name":"cpmorphcomposite_mouthposition_width_lsx","bit":544,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_eyeshape_tilt_rsy","bit":576,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_noseprofile_tipshape_rsy","bit":608,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_browplacement_thickness_rsy","bit":640,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_noseplacement_position_lsy","bit":672,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_eyeshape_seperation_lsx","bit":704,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_noseprofile_tipprotrusion_rsx","bit":736,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_cheekplacement_width_lsx","bit":768,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_laughlinedarkness_lsx","bit":800,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_jaw_position_lsy","bit":832,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_browplacement_protrusion_rsx","bit":864,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_eyedetail2_lowerlid_lsx","bit":896,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_lips_upperlip_thickness_lsy","bit":928,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_noseprofile_shape_lsy","bit":960,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_lips_lowerlip_thickness_rsy","bit":992,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorhpcomposite_chin_width_lsx","bit":1024,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_nosestyle_nosestyle_lsx","bit":1056,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"personaid","bit":1088,"width":32,"kind":"int","min":-1,"max":2147483647,"storage":"int"},{"name":"cpmorphcomposite_mouthposition_position_lsy","bit":1120,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_earplacement_protrusion_lsx","bit":1152,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_dimpledarkness_lsx","bit":1184,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_noseplacement_width_rsx","bit":1216,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_eyedetail2_protrusion_rsy","bit":1248,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_lipstyle_corners_lipdimple_rsx","bit":1280,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_lips_lowerlip_thickness_rsx","bit":1312,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_browplacement_position_lsy","bit":1344,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorhpcomposite_chin_postion_lsy","bit":1376,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_lipstyle_corners_updown_lsy","bit":1408,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_eyedetail1_protrusion_rsx","bit":1440,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_browshape_seperation_lsx","bit":1472,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_jaw_bulk_rsx","bit":1504,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_noseplacement_width_lsx","bit":1536,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_eyedetail1_symmetry_lsx","bit":1568,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_nostrils_width_lsx","bit":1600,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_eyedetail2_upperlid_lsy","bit":1632,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_lipstyle_corners_leftright_lsx","bit":1664,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_browplacement_tilt_lsx","bit":1696,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_jaw_width_lsx","bit":1728,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_browshape_thickness_rsy","bit":1760,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorhpcomposite_chin_protrusion_rsx","bit":1792,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_noseplacement_position_rsy","bit":1824,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_nostrildetail_width_lsx","bit":1856,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorphcomposite_cheekstyle_style_lsx","bit":1888,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpmorhpcomposite_chin_deatil_rsy","bit":1920,"width":32,"kind":"unknown","min":0,"max":0,"storage":"int"},{"name":"cpattributename_hair_style","bit":1952,"width":8,"kind":"int","min":0,"max":210,"storage":"int"},{"name":"create_originalplayerid","bit":1960,"width":19,"kind":"int","min":0,"max":300000,"storage":"int"},{"name":"create_playerid","bit":1979,"width":19,"kind":"int","min":0,"max":300000,"storage":"int"},{"name":"cpattributename_hair_colour","bit":1998,"width":7,"kind":"int","min":0,"max":99,"storage":"int"},{"name":"celebrationid","bit":2005,"width":4,"kind":"int","min":0,"max":15,"storage":"int"},{"name":"cpattributename_brow_style","bit":2009,"width":7,"kind":"int","min":0,"max":99,"storage":"int"},{"name":"cpattributename_eye_colour","bit":2016,"width":7,"kind":"int","min":0,"max":99,"storage":"int"},{"name":"create_artificialkey","bit":2023,"width":6,"kind":"int","min":0,"max":61,"storage":"int"},{"name":"commentaryid","bit":2029,"width":20,"kind":"int","min":-1,"max":1000000,"storage":"int"},{"name":"cpattributename_facial_hair_style","bit":2049,"width":7,"kind":"int","min":0,"max":99,"storage":"int"},{"name":"cpattributename_brow_colour","bit":2056,"width":7,"kind":"int","min":0,"max":99,"storage":"int"},{"name":"cpattributename_facial_hair_colour","bit":2063,"width":7,"kind":"int","min":0,"max":99,"storage":"int"}],"rows":[]} |